feat(tester): extend ListProblems endpoint
This commit is contained in:
parent
81d7aa2366
commit
251772a049
8 changed files with 76 additions and 4 deletions
|
@ -23,8 +23,35 @@ func (h *TesterHandlers) ListContests(c *fiber.Ctx) error {
|
|||
return c.SendStatus(fiber.StatusNotImplemented)
|
||||
}
|
||||
|
||||
func (h *TesterHandlers) ListProblems(c *fiber.Ctx) error {
|
||||
return c.SendStatus(fiber.StatusNotImplemented)
|
||||
func (h *TesterHandlers) ListProblems(c *fiber.Ctx, params testerv1.ListProblemsParams) error {
|
||||
problems, count, err := h.problemsUC.ListProblems(c.Context(), params.Page, params.PageSize)
|
||||
if err != nil {
|
||||
return c.SendStatus(pkg.ToREST(err))
|
||||
}
|
||||
|
||||
resp := testerv1.ListProblemsResponse{
|
||||
Problems: make([]testerv1.ProblemListItem, len(problems)),
|
||||
Page: params.Page,
|
||||
MaxPage: func() int32 {
|
||||
if count%params.PageSize == 0 {
|
||||
return count / params.PageSize
|
||||
}
|
||||
return count/params.PageSize + 1
|
||||
}(),
|
||||
}
|
||||
|
||||
for i, problem := range problems {
|
||||
resp.Problems[i] = testerv1.ProblemListItem{
|
||||
Id: problem.Id,
|
||||
Title: problem.Title,
|
||||
MemoryLimit: problem.MemoryLimit,
|
||||
TimeLimit: problem.TimeLimit,
|
||||
CreatedAt: problem.CreatedAt,
|
||||
UpdatedAt: problem.UpdatedAt,
|
||||
}
|
||||
}
|
||||
|
||||
return c.JSON(resp)
|
||||
}
|
||||
|
||||
func (h *TesterHandlers) CreateContest(c *fiber.Ctx) error {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue