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

36 lines
989 B
Go
Raw Normal View History

2022-09-20 16:42:57 +08:00
package problem
import (
"github.com/WHUPRJ/woj-server/internal/e"
2022-10-20 16:50:19 +08:00
"github.com/WHUPRJ/woj-server/internal/global"
"github.com/WHUPRJ/woj-server/internal/model"
2022-09-20 16:42:57 +08:00
"go.uber.org/zap"
"gorm.io/gorm"
)
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)
2022-09-20 16:42:57 +08:00
}
type service struct {
log *zap.Logger
db *gorm.DB
}
2022-09-26 16:13:31 +08:00
func NewService(g *global.Global) Service {
2022-09-20 16:42:57 +08:00
return &service{
log: g.Log,
db: g.Db.Get().(*gorm.DB),
}
}