package v1 import ( "quyun/v2/app/middlewares" "go.ipao.vip/atom" "go.ipao.vip/atom/container" "go.ipao.vip/atom/contracts" "go.ipao.vip/atom/opt" ) func Provide(opts ...opt.Option) error { if err := container.Container.Provide(func() (*Auth, error) { obj := &Auth{} return obj, nil }); err != nil { return err } if err := container.Container.Provide(func() (*Common, error) { obj := &Common{} return obj, nil }); err != nil { return err } if err := container.Container.Provide(func() (*Content, error) { obj := &Content{} return obj, nil }); err != nil { return err } if err := container.Container.Provide(func() (*Creator, error) { obj := &Creator{} return obj, nil }); err != nil { return err } if err := container.Container.Provide(func( auth *Auth, common *Common, content *Content, creator *Creator, middlewares *middlewares.Middlewares, super *Super, tenant *Tenant, transaction *Transaction, user *User, ) (contracts.HttpRoute, error) { obj := &Routes{ auth: auth, common: common, content: content, creator: creator, middlewares: middlewares, super: super, tenant: tenant, transaction: transaction, user: user, } if err := obj.Prepare(); err != nil { return nil, err } return obj, nil }, atom.GroupRoutes); err != nil { return err } if err := container.Container.Provide(func() (*Super, error) { obj := &Super{} return obj, nil }); err != nil { return err } if err := container.Container.Provide(func() (*Tenant, error) { obj := &Tenant{} return obj, nil }); err != nil { return err } if err := container.Container.Provide(func() (*Transaction, error) { obj := &Transaction{} return obj, nil }); err != nil { return err } if err := container.Container.Provide(func() (*User, error) { obj := &User{} return obj, nil }); err != nil { return err } return nil }