woj-server/internal/api/consumer/handler.go

38 lines
949 B
Go

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
}