fix: fix UploadProblem data format

This commit is contained in:
Vyacheslav1557 2025-04-23 16:02:40 +05:00
parent 441af4c6a2
commit 28fa38c930
2 changed files with 23 additions and 8 deletions

@ -1 +1 @@
Subproject commit a0e07aab6642f7594065af8a3b28702156e2aa7d
Subproject commit 91b7c6804671bcd533ab09939f21d27aacd5f793

View file

@ -7,6 +7,7 @@ import (
"git.sch9.ru/new_gate/ms-tester/internal/problems"
"git.sch9.ru/new_gate/ms-tester/pkg"
"github.com/gofiber/fiber/v2"
"io"
)
type Handlers struct {
@ -176,24 +177,38 @@ func (h *Handlers) UpdateProblem(c *fiber.Ctx, id int32) error {
func (h *Handlers) UploadProblem(c *fiber.Ctx, id int32) error {
ctx := c.Context()
session, err := sessionFromCtx(ctx)
if err != nil {
return c.SendStatus(pkg.ToREST(err))
//session, err := sessionFromCtx(ctx)
//if err != nil {
// return c.SendStatus(pkg.ToREST(err))
//}
session := models.Session{
Role: models.RoleAdmin,
}
switch session.Role {
case models.RoleAdmin, models.RoleTeacher:
var req testerv1.UploadProblemRequest
err := c.BodyParser(&req)
a, err := c.FormFile("archive")
if err != nil {
return err
}
data, err := req.Archive.Bytes()
if a.Size == 0 { // FIXME: check max size
return c.SendStatus(fiber.StatusBadRequest)
}
f, err := a.Open()
if err != nil {
return err
}
if err = h.problemsUC.UploadProblem(c.Context(), id, data); err != nil {
defer f.Close()
data, err := io.ReadAll(f)
if err != nil {
return err
}
if err = h.problemsUC.UploadProblem(ctx, id, data); err != nil {
return err
}
return nil