diff --git a/go.mod b/go.mod index 394507d..3d09bda 100644 --- a/go.mod +++ b/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 ) diff --git a/go.sum b/go.sum index a91fbb7..32eecd7 100644 --- a/go.sum +++ b/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= diff --git a/service/service.go b/service/service.go index 883a7be..d3a508c 100644 --- a/service/service.go +++ b/service/service.go @@ -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, }) }