diff --git a/internal/tester/delivery/rest/handlers.go b/internal/tester/delivery/rest/handlers.go index 16dfeb1..8c017b4 100644 --- a/internal/tester/delivery/rest/handlers.go +++ b/internal/tester/delivery/rest/handlers.go @@ -253,6 +253,23 @@ func (h *TesterHandlers) UpdateProblem(c *fiber.Ctx, id int32) error { return c.SendStatus(fiber.StatusOK) } +func (h *TesterHandlers) UploadProblem(c *fiber.Ctx, id int32) error { + var req testerv1.UploadProblemRequest + err := c.BodyParser(&req) + if err != nil { + return err + } + + data, err := req.Archive.Bytes() + if err != nil { + return err + } + if err = h.problemsUC.UploadProblem(c.Context(), id, data); err != nil { + return err + } + return nil +} + func (h *TesterHandlers) UpdateContest(c *fiber.Ctx, id int32) error { var req testerv1.UpdateContestRequest err := c.BodyParser(&req)