woj-server/internal/service/problem/service.go

43 lines
1.2 KiB
Go
Raw Normal View History

2022-09-20 16:42:57 +08:00
package problem
import (
2023-07-14 21:47:11 +08:00
"git.0x7f.app/WOJ/woj-server/internal/e"
2023-07-15 16:19:49 +08:00
"git.0x7f.app/WOJ/woj-server/internal/misc/log"
2023-07-14 21:47:11 +08:00
"git.0x7f.app/WOJ/woj-server/internal/model"
2023-07-15 16:19:49 +08:00
"git.0x7f.app/WOJ/woj-server/internal/repo/db"
"github.com/samber/do"
2022-09-20 16:42:57 +08:00
"go.uber.org/zap"
)
var _ Service = (*service)(nil)
type Service interface {
Create(data *CreateData) (*model.Problem, e.Status)
Update(problem *model.Problem) (*model.Problem, e.Status)
Query(pid uint, associations bool, shouldEnable bool) (*model.Problem, e.Status)
QueryFuzz(search string, associations bool, shouldEnable bool) ([]*model.Problem, e.Status)
CreateVersion(data *CreateVersionData) (*model.ProblemVersion, e.Status)
UpdateVersion(pvid uint, values interface{}) e.Status
QueryVersion(pvid uint, shouldEnable bool) (*model.ProblemVersion, e.Status)
QueryLatestVersion(pid uint) (*model.ProblemVersion, e.Status)
2023-07-15 16:19:49 +08:00
HealthCheck() error
}
func NewService(i *do.Injector) (Service, error) {
return &service{
log: do.MustInvoke[log.Service](i).GetLogger("problem"),
db: do.MustInvoke[db.Service](i),
}, nil
2022-09-20 16:42:57 +08:00
}
type service struct {
log *zap.Logger
2023-07-15 16:19:49 +08:00
db db.Service
2022-09-20 16:42:57 +08:00
}
2023-07-15 16:19:49 +08:00
func (s *service) HealthCheck() error {
return nil
2022-09-20 16:42:57 +08:00
}