added version form-data expected

This commit is contained in:
Pavel 2024-09-18 19:34:28 +03:00
parent e875e5f992
commit 2519698bfc
3 changed files with 27 additions and 7 deletions

2
go.mod

@ -13,7 +13,7 @@ require (
github.com/themakers/hlog v0.0.0-20191205140925-235e0e4baddf
go.uber.org/zap v1.27.0
penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240607142502-8257e6c4aa5a
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240608210553-4b0f100655ae
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240918162234-cd187815251c
penahub.gitlab.yandexcloud.net/devops/linters/golang.git v0.0.0-20240829220549-d35409b619a3
penahub.gitlab.yandexcloud.net/external/trashlog v0.1.5
)

2
go.sum

@ -172,6 +172,8 @@ penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240607142502-8257
penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240607142502-8257e6c4aa5a/go.mod h1:+bPxq2wfW5S1gd+83vZYmHm33AE7nEBfznWS8AM1TKE=
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240608210553-4b0f100655ae h1:rwSxoF9nrR+1X+wSVVuCgirbyzLPDDefRPxVwshC1ss=
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240608210553-4b0f100655ae/go.mod h1:n66zm88Dh12+idyfqh0vU5nd9BZYxM6Pv0XYnmy0398=
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240918162234-cd187815251c h1:dSjFYdQq04yhDjoZ22xZAOZA67dUxB4Usz57QIUKSx8=
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240918162234-cd187815251c/go.mod h1:uOuosXduBzd2WbLH6TDZO7ME7ZextulA662oZ6OsoB0=
penahub.gitlab.yandexcloud.net/devops/linters/golang.git v0.0.0-20240829220549-d35409b619a3 h1:sf6e2mp582L3i/FMDd2q6QuWm1njRXzYpIX0SipsvM4=
penahub.gitlab.yandexcloud.net/devops/linters/golang.git v0.0.0-20240829220549-d35409b619a3/go.mod h1:i7M72RIpkSjcQtHID6KKj9RT/EYZ1rxS6tIPKWa/BSY=
penahub.gitlab.yandexcloud.net/external/trashlog v0.1.5 h1:amsK0bkSJxBisk334aFo5ZmVPvN1dBT0Sv5j3V5IsT8=

@ -12,6 +12,7 @@ import (
"penahub.gitlab.yandexcloud.net/backend/quiz/common.git/middleware"
"penahub.gitlab.yandexcloud.net/backend/quiz/common.git/model"
"penahub.gitlab.yandexcloud.net/backend/quiz/common.git/utils"
"strconv"
"strings"
"sync"
"time"
@ -111,6 +112,17 @@ func (s *Service) GetQuizData(c *fiber.Ctx) error {
return c.Status(fiber.StatusBadRequest).SendString("Invalid request data")
}
form, err := c.MultipartForm()
if err != nil || form == nil {
return c.Status(fiber.StatusBadRequest).SendString("expecting multipart form file")
}
// todo
version, err := strconv.ParseInt(form.Value["version"][0], 10, 32)
if err != nil {
return c.Status(fiber.StatusBadRequest).SendString(fmt.Sprintf("invalid version:%s", err.Error()))
}
if req.QuizId == "" {
return c.Status(fiber.StatusBadRequest).SendString("Invalid request data")
}
@ -233,6 +245,7 @@ func (s *Service) GetQuizData(c *fiber.Ctx) error {
IP: ip,
OS: os,
Utm: utmData,
Version: int32(version),
}}, cs, fp, quiz.Id)
if len(errs) != 0 {
return c.Status(fiber.StatusInternalServerError).SendString(errs[0].Error())
@ -246,7 +259,7 @@ func (s *Service) GetQuizData(c *fiber.Ctx) error {
CtxQuiz: req.QuizId,
CtxQuizID: int64(quiz.Id),
CtxReferrer: referrer,
CtxIDInt: int64(answers[0].Id),
CtxIDInt: int64(answers[0].Id),
CtxSession: cs,
})
fmt.Println("SETTIIIIII", cnt <= req.Limit, result)
@ -315,6 +328,11 @@ func (s *Service) PutAnswersOnePiece(c *fiber.Ctx) error {
if len(answersStr) == 0 {
return c.Status(fiber.StatusFailedDependency).SendString("no answers provided")
}
// todo
version, err := strconv.ParseInt(form.Value["version"][0], 10, 32)
if err != nil {
return c.Status(fiber.StatusBadRequest).SendString(fmt.Sprintf("invalid version:%s", err.Error()))
}
var (
answersRaw, answers, trueRes []model.Answer
@ -356,6 +374,7 @@ func (s *Service) PutAnswersOnePiece(c *fiber.Ctx) error {
ans.Browser = browser
ans.IP = ip
ans.Device = device
ans.Version = int32(version)
if strings.HasPrefix(ans.Content, filePrefix) {
filekey := strings.TrimPrefix(ans.Content, filePrefix)
filenameparts := strings.Split(filekey, ".")
@ -395,7 +414,7 @@ func (s *Service) PutAnswersOnePiece(c *fiber.Ctx) error {
ans.Email = content.Email
hlogger.Emit(models.InfoContactForm{
KeyOS: os,
KeyOS: os,
KeyDevice: device,
KeyDeviceType: deviceType,
KeyBrowser: browser,
@ -403,9 +422,8 @@ func (s *Service) PutAnswersOnePiece(c *fiber.Ctx) error {
CtxQuizID: int64(quiz.Id),
CtxReferrer: referrer,
CtxQuestionID: int64(ans.QuestionId),
CtxIDInt: int64(ans.Id),
CtxIDInt: int64(ans.Id),
CtxSession: cs,
})
s.workerSendClientCh <- ans
@ -446,7 +464,7 @@ func (s *Service) PutAnswersOnePiece(c *fiber.Ctx) error {
CtxQuizID: int64(quiz.Id),
CtxReferrer: referrer,
CtxQuestionID: int64(ans.QuestionId),
CtxIDInt: int64(ans.Id),
CtxIDInt: int64(ans.Id),
CtxSession: cs,
})
continue
@ -460,7 +478,7 @@ func (s *Service) PutAnswersOnePiece(c *fiber.Ctx) error {
CtxQuizID: int64(quiz.Id),
CtxReferrer: referrer,
CtxQuestionID: int64(ans.QuestionId),
CtxIDInt: int64(ans.Id),
CtxIDInt: int64(ans.Id),
CtxSession: cs,
})
}