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 github.com/themakers/hlog v0.0.0-20191205140925-235e0e4baddf
go.uber.org/zap v1.27.0 go.uber.org/zap v1.27.0
penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240607142502-8257e6c4aa5a 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/devops/linters/golang.git v0.0.0-20240829220549-d35409b619a3
penahub.gitlab.yandexcloud.net/external/trashlog v0.1.5 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/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 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-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 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/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= 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/middleware"
"penahub.gitlab.yandexcloud.net/backend/quiz/common.git/model" "penahub.gitlab.yandexcloud.net/backend/quiz/common.git/model"
"penahub.gitlab.yandexcloud.net/backend/quiz/common.git/utils" "penahub.gitlab.yandexcloud.net/backend/quiz/common.git/utils"
"strconv"
"strings" "strings"
"sync" "sync"
"time" "time"
@ -111,6 +112,17 @@ func (s *Service) GetQuizData(c *fiber.Ctx) error {
return c.Status(fiber.StatusBadRequest).SendString("Invalid request data") 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 == "" { if req.QuizId == "" {
return c.Status(fiber.StatusBadRequest).SendString("Invalid request data") return c.Status(fiber.StatusBadRequest).SendString("Invalid request data")
} }
@ -233,6 +245,7 @@ func (s *Service) GetQuizData(c *fiber.Ctx) error {
IP: ip, IP: ip,
OS: os, OS: os,
Utm: utmData, Utm: utmData,
Version: int32(version),
}}, cs, fp, quiz.Id) }}, cs, fp, quiz.Id)
if len(errs) != 0 { if len(errs) != 0 {
return c.Status(fiber.StatusInternalServerError).SendString(errs[0].Error()) return c.Status(fiber.StatusInternalServerError).SendString(errs[0].Error())
@ -246,7 +259,7 @@ func (s *Service) GetQuizData(c *fiber.Ctx) error {
CtxQuiz: req.QuizId, CtxQuiz: req.QuizId,
CtxQuizID: int64(quiz.Id), CtxQuizID: int64(quiz.Id),
CtxReferrer: referrer, CtxReferrer: referrer,
CtxIDInt: int64(answers[0].Id), CtxIDInt: int64(answers[0].Id),
CtxSession: cs, CtxSession: cs,
}) })
fmt.Println("SETTIIIIII", cnt <= req.Limit, result) fmt.Println("SETTIIIIII", cnt <= req.Limit, result)
@ -315,6 +328,11 @@ func (s *Service) PutAnswersOnePiece(c *fiber.Ctx) error {
if len(answersStr) == 0 { if len(answersStr) == 0 {
return c.Status(fiber.StatusFailedDependency).SendString("no answers provided") 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 ( var (
answersRaw, answers, trueRes []model.Answer answersRaw, answers, trueRes []model.Answer
@ -356,6 +374,7 @@ func (s *Service) PutAnswersOnePiece(c *fiber.Ctx) error {
ans.Browser = browser ans.Browser = browser
ans.IP = ip ans.IP = ip
ans.Device = device ans.Device = device
ans.Version = int32(version)
if strings.HasPrefix(ans.Content, filePrefix) { if strings.HasPrefix(ans.Content, filePrefix) {
filekey := strings.TrimPrefix(ans.Content, filePrefix) filekey := strings.TrimPrefix(ans.Content, filePrefix)
filenameparts := strings.Split(filekey, ".") filenameparts := strings.Split(filekey, ".")
@ -395,7 +414,7 @@ func (s *Service) PutAnswersOnePiece(c *fiber.Ctx) error {
ans.Email = content.Email ans.Email = content.Email
hlogger.Emit(models.InfoContactForm{ hlogger.Emit(models.InfoContactForm{
KeyOS: os, KeyOS: os,
KeyDevice: device, KeyDevice: device,
KeyDeviceType: deviceType, KeyDeviceType: deviceType,
KeyBrowser: browser, KeyBrowser: browser,
@ -403,9 +422,8 @@ func (s *Service) PutAnswersOnePiece(c *fiber.Ctx) error {
CtxQuizID: int64(quiz.Id), CtxQuizID: int64(quiz.Id),
CtxReferrer: referrer, CtxReferrer: referrer,
CtxQuestionID: int64(ans.QuestionId), CtxQuestionID: int64(ans.QuestionId),
CtxIDInt: int64(ans.Id), CtxIDInt: int64(ans.Id),
CtxSession: cs, CtxSession: cs,
}) })
s.workerSendClientCh <- ans s.workerSendClientCh <- ans
@ -446,7 +464,7 @@ func (s *Service) PutAnswersOnePiece(c *fiber.Ctx) error {
CtxQuizID: int64(quiz.Id), CtxQuizID: int64(quiz.Id),
CtxReferrer: referrer, CtxReferrer: referrer,
CtxQuestionID: int64(ans.QuestionId), CtxQuestionID: int64(ans.QuestionId),
CtxIDInt: int64(ans.Id), CtxIDInt: int64(ans.Id),
CtxSession: cs, CtxSession: cs,
}) })
continue continue
@ -460,7 +478,7 @@ func (s *Service) PutAnswersOnePiece(c *fiber.Ctx) error {
CtxQuizID: int64(quiz.Id), CtxQuizID: int64(quiz.Id),
CtxReferrer: referrer, CtxReferrer: referrer,
CtxQuestionID: int64(ans.QuestionId), CtxQuestionID: int64(ans.QuestionId),
CtxIDInt: int64(ans.Id), CtxIDInt: int64(ans.Id),
CtxSession: cs, CtxSession: cs,
}) })
} }