package submission import ( "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/submission" "git.0x7f.app/WOJ/woj-server/internal/service/task" "git.0x7f.app/WOJ/woj-server/internal/web/jwt" "github.com/gin-gonic/gin" "github.com/samber/do" "go.uber.org/zap" ) var _ Handler = (*handler)(nil) type Handler interface { Create(c *gin.Context) Rejudge(c *gin.Context) } type handler struct { log *zap.Logger jwtService jwt.Service problemService problem.Service statusService status.Service submissionService submission.Service taskService task.Service } func RouteRegister(rg *gin.RouterGroup, i *do.Injector) { app := &handler{ log: do.MustInvoke[log.Service](i).GetLogger("api.submission"), jwtService: do.MustInvoke[jwt.Service](i), problemService: do.MustInvoke[problem.Service](i), statusService: do.MustInvoke[status.Service](i), submissionService: do.MustInvoke[submission.Service](i), taskService: do.MustInvoke[task.Service](i), } rg.POST("/create", app.jwtService.Handler(true), app.Create) rg.POST("/rejudge", app.jwtService.Handler(true), app.Rejudge) }