package subscribers import ( "backend/app/http/posts" "backend/app/http/users" "backend/providers/event" "backend/providers/job" "git.ipao.vip/rogeecn/atom" "git.ipao.vip/rogeecn/atom/container" "git.ipao.vip/rogeecn/atom/contracts" "git.ipao.vip/rogeecn/atom/utils/opt" ) func Provide(opts ...opt.Option) error { if err := container.Container.Provide(func( __event *event.PubSub, job *job.Job, postSvc *posts.Service, ) (contracts.Initial, error) { obj := &PostCreated{ job: job, postSvc: postSvc, } if err := obj.Prepare(); err != nil { return nil, err } __event.Handle("handler:PostCreated", obj.Topic(), obj.PublishToTopic(), obj.Handler) return obj, nil }, atom.GroupInitial); err != nil { return err } if err := container.Container.Provide(func( __event *event.PubSub, job *job.Job, postSvc *posts.Service, ) (contracts.Initial, error) { obj := &PostDeleted{ job: job, postSvc: postSvc, } if err := obj.Prepare(); err != nil { return nil, err } __event.Handle("handler:PostDeleted", obj.Topic(), obj.PublishToTopic(), obj.Handler) return obj, nil }, atom.GroupInitial); err != nil { return err } if err := container.Container.Provide(func( __event *event.PubSub, ) (contracts.Initial, error) { obj := &PostUpdatedSubscriber{} if err := obj.Prepare(); err != nil { return nil, err } __event.Handle("handler:PostUpdatedSubscriber", obj.Topic(), obj.PublishToTopic(), obj.Handler) return obj, nil }, atom.GroupInitial); err != nil { return err } if err := container.Container.Provide(func( __event *event.PubSub, userSvc *users.Service, ) (contracts.Initial, error) { obj := &UserRegister{ userSvc: userSvc, } if err := obj.Prepare(); err != nil { return nil, err } __event.Handle("handler:UserRegister", obj.Topic(), obj.PublishToTopic(), obj.Handler) return obj, nil }, atom.GroupInitial); err != nil { return err } return nil }