package consumer import ( "context" "git.0x7f.app/WOJ/woj-server/internal/misc/log" "git.0x7f.app/WOJ/woj-server/internal/service/problem" "git.0x7f.app/WOJ/woj-server/internal/service/status" "git.0x7f.app/WOJ/woj-server/internal/service/task" "github.com/hibiken/asynq" "github.com/samber/do" "go.uber.org/zap" ) var _ Handler = (*handler)(nil) type Handler interface { ProblemUpdate(_ context.Context, t *asynq.Task) error SubmitUpdate(_ context.Context, t *asynq.Task) error } type handler struct { log *zap.Logger problemService problem.Service statusService status.Service taskService task.Service } func NewConsumer(i *do.Injector) Handler { hnd := &handler{ log: do.MustInvoke[log.Service](i).GetLogger("api.consumer"), problemService: do.MustInvoke[problem.Service](i), statusService: do.MustInvoke[status.Service](i), taskService: do.MustInvoke[task.Service](i), } return hnd }