diff --git a/deployments/main/docker-compose.yaml b/deployments/main/docker-compose.yaml index 39e17b9..8c31d4e 100644 --- a/deployments/main/docker-compose.yaml +++ b/deployments/main/docker-compose.yaml @@ -1,7 +1,8 @@ +version: "3" services: - answerer: - hostname: squiz-answerer - container_name: squiz-answerer + answererv1.0.0: + hostname: squiz-answererv1.0.0 + container_name: squiz-answererv1.0.0 image: $CI_REGISTRY_IMAGE/main-answerer:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID tty: true environment: @@ -9,12 +10,16 @@ services: IS_PROD: 'false' PUBLIC_ACCESS_SECRET_KEY: $JWT_PUBLIC_KEY PORT: 1490 - MINIO_EP: 'storage.yandexcloud.net' - MINIO_AK: 'YCAJEOcqqTHpiwL4qFwLfHPNA' - MINIO_SK: 'YCNIAIat0XqdDzycWsYKX3OU7mPor6S0WmMoG4Ry' + MINIO_EP: s3.timeweb.cloud + MINIO_AK: 5CV77KVDUU9H0II9R24M + MINIO_SK: '0W0m8DyvdAKRJnsAy6mB5zndQ7RouJBLhqhtThcu' PG_CRED: 'host=10.8.0.9 port=5433 user=squiz password=Redalert2 dbname=squiz sslmode=disable' REDIS_HOST: '10.8.0.9:6379' REDIS_PASSWORD: 'Redalert2' REDIS_DB: 2 + PUBLIC_KEY: $PUBLIC_KEY + PRIVATE_KEY: $PRIVATE_KEY + TRASH_LOG_HOST: "10.8.0.15:7113" + MODULE_LOGGER: "quiz-answerer-main" ports: - - 10.8.0.9:1490:1490 + - 10.8.0.9:1491:1490 diff --git a/models/hlog_events.go b/models/hlog_events.go index 19a2069..dc0dd63 100644 --- a/models/hlog_events.go +++ b/models/hlog_events.go @@ -11,48 +11,60 @@ type AllFields struct { KeyBrowser string CtxQuiz string CtxReferrer string - CtxIDInt int64 + CtxIDInt int64 CtxSession string CtxQuizID int64 CtxQuestionID int64 } type InfoQuizOpen struct { // при получении настроек квиза - KeyOS, KeyDevice, KeyDeviceType, KeyBrowser string // то самое, что получается из заголовков и складывается в модель ответа. на самом деле, ему место тут - CtxQuiz string // айдишник квиза, который qid - CtxQuizID int64 // айдишник квиза - CtxReferrer string // тоже из заголовков - CtxIDInt int64 // айдишник ответа - CtxSession string // сессия + KeyOS string + KeyDevice string + KeyDeviceType string + KeyBrowser string // то самое, что получается из заголовков и складывается в модель ответа. на самом деле, ему место тут + CtxQuiz string // айдишник квиза, который qid + CtxQuizID int64 // айдишник квиза + CtxReferrer string // тоже из заголовков + CtxIDInt int64 // айдишник ответа + CtxSession string // сессия } type InfoAnswer struct { // при любом ответе на вопрос - KeyOS, KeyDevice, KeyDeviceType, KeyBrowser string // то самое, что получается из заголовков и складывается в модель ответа. на самом деле, ему место тут - CtxQuiz string // айдишник квиза, который qid - CtxQuizID int64 // айдишник квиза - CtxReferrer string // тоже из заголовков - CtxQuestionID int64 // айдишник вопроса, на который отвечено - CtxIDInt int64 // айдишник ответа - CtxSession string // сессия + KeyOS string + KeyDevice string + KeyDeviceType string + KeyBrowser string // то самое, что получается из заголовков и складывается в модель ответа. на самом деле, ему место тут + CtxQuiz string // айдишник квиза, который qid + CtxQuizID int64 // айдишник квиза + CtxReferrer string // тоже из заголовков + CtxQuestionID int64 // айдишник вопроса, на который отвечено + CtxIDInt int64 // айдишник ответа + CtxSession string // сессия } type InfoResult struct { // если ответ на вопрос с типом result - KeyOS, KeyDevice, KeyDeviceType, KeyBrowser string // то самое, что получается из заголовков и складывается в модель ответа. на самом деле, ему место тут - CtxQuiz string // айдишник квиза, который qid - CtxQuizID int64 // айдишник квиза - CtxReferrer string // тоже из заголовков - CtxQuestionID int64 // айдишник вопроса, на который отвечено - CtxIDInt int64 // айдишник ответа - CtxSession string // сессия + KeyOS string + KeyDevice string + KeyDeviceType string + KeyBrowser string // то самое, что получается из заголовков и складывается в модель ответа. на самом деле, ему место тут + CtxQuiz string // айдишник квиза, который qid + CtxQuizID int64 // айдишник квиза + CtxReferrer string // тоже из заголовков + CtxQuestionID int64 // айдишник вопроса, на который отвечено + CtxIDInt int64 // айдишник ответа + CtxSession string // сессия } // todo понять для чего это событие вроде как контакты приходят в ответахс с result = true там парситься контент с контактной информацией type InfoContactForm struct { // если ответ на вопрос с типом result, без result == true (возможно перепутал с предыдущим. в этом ответе приходят контактные данные респондента) - KeyOS, KeyDevice, KeyDeviceType, KeyBrowser string // то самое, что получается из заголовков и складывается в модель ответа. на самом деле, ему место тут - CtxQuiz string // айдишник квиза, который qid - CtxQuizID int64 // айдишник квиза - CtxReferrer string // тоже из заголовков - CtxQuestionID int64 // айдишник вопроса, на который отвечено - CtxIDInt int64 // айдишник ответа - CtxSession string // сессия + KeyOS string + KeyDevice string + KeyDeviceType string + KeyBrowser string // то самое, что получается из заголовков и складывается в модель ответа. на самом деле, ему место тут + CtxQuiz string // айдишник квиза, который qid + CtxQuizID int64 // айдишник квиза + CtxReferrer string // тоже из заголовков + CtxQuestionID int64 // айдишник вопроса, на который отвечено + CtxIDInt int64 // айдишник ответа + CtxSession string // сессия } diff --git a/service/service.go b/service/service.go index f088547..883a7be 100644 --- a/service/service.go +++ b/service/service.go @@ -394,6 +394,20 @@ func (s *Service) PutAnswersOnePiece(c *fiber.Ctx) error { } ans.Email = content.Email + hlogger.Emit(models.InfoContactForm{ + KeyOS: os, + KeyDevice: device, + KeyDeviceType: deviceType, + KeyBrowser: browser, + CtxQuiz: quizID[0], + CtxQuizID: int64(quiz.Id), + CtxReferrer: referrer, + CtxQuestionID: int64(ans.QuestionId), + CtxIDInt: int64(ans.Id), + CtxSession: cs, + + }) + s.workerSendClientCh <- ans trueRes = append(trueRes, ans) }