fix: fix UploadProblem data format
This commit is contained in:
parent
441af4c6a2
commit
28fa38c930
2 changed files with 23 additions and 8 deletions
|
@ -1 +1 @@
|
||||||
Subproject commit a0e07aab6642f7594065af8a3b28702156e2aa7d
|
Subproject commit 91b7c6804671bcd533ab09939f21d27aacd5f793
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"git.sch9.ru/new_gate/ms-tester/internal/problems"
|
"git.sch9.ru/new_gate/ms-tester/internal/problems"
|
||||||
"git.sch9.ru/new_gate/ms-tester/pkg"
|
"git.sch9.ru/new_gate/ms-tester/pkg"
|
||||||
"github.com/gofiber/fiber/v2"
|
"github.com/gofiber/fiber/v2"
|
||||||
|
"io"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Handlers struct {
|
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 {
|
func (h *Handlers) UploadProblem(c *fiber.Ctx, id int32) error {
|
||||||
ctx := c.Context()
|
ctx := c.Context()
|
||||||
|
|
||||||
session, err := sessionFromCtx(ctx)
|
//session, err := sessionFromCtx(ctx)
|
||||||
if err != nil {
|
//if err != nil {
|
||||||
return c.SendStatus(pkg.ToREST(err))
|
// return c.SendStatus(pkg.ToREST(err))
|
||||||
|
//}
|
||||||
|
|
||||||
|
session := models.Session{
|
||||||
|
Role: models.RoleAdmin,
|
||||||
}
|
}
|
||||||
|
|
||||||
switch session.Role {
|
switch session.Role {
|
||||||
case models.RoleAdmin, models.RoleTeacher:
|
case models.RoleAdmin, models.RoleTeacher:
|
||||||
var req testerv1.UploadProblemRequest
|
a, err := c.FormFile("archive")
|
||||||
err := c.BodyParser(&req)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
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 {
|
if err != nil {
|
||||||
return err
|
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 err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|
Loading…
Add table
Reference in a new issue