package users import ( "database/sql" "git.ipao.vip/rogeecn/atom" "git.ipao.vip/rogeecn/atom/container" "git.ipao.vip/rogeecn/atom/contracts" "git.ipao.vip/rogeecn/atom/utils/opt" hashids "github.com/speps/go-hashids/v2" ) func Provide(opts ...opt.Option) error { if err := container.Container.Provide(func( hashIds *hashids.HashID, svc *Service, ) (*Controller, error) { obj := &Controller{ hashIds: hashIds, svc: svc, } return obj, nil }); err != nil { return err } if err := container.Container.Provide(func( controller *Controller, ) (contracts.HttpRoute, error) { obj := &Router{ controller: controller, } if err := obj.Prepare(); err != nil { return nil, err } return obj, nil }, atom.GroupRoutes); err != nil { return err } if err := container.Container.Provide(func( db *sql.DB, hashIds *hashids.HashID, ) (*Service, error) { obj := &Service{ db: db, hashIds: hashIds, } if err := obj.Prepare(); err != nil { return nil, err } return obj, nil }); err != nil { return err } return nil }