diff --git a/lib/api/quizRelase.ts b/lib/api/quizRelase.ts index 5dbc126..e8ba0ca 100644 --- a/lib/api/quizRelase.ts +++ b/lib/api/quizRelase.ts @@ -252,3 +252,40 @@ export function sendFC({ questionId, body, qid, preview }: SendFCParams) { method: "POST", }); } + +//форма контактов +export type SendResultParams = { + questionId: string; + pointsSum: number; + qid: string; + preview: boolean; +}; + +export function sendResult({ questionId, pointsSum, qid, preview }: SendResultParams) { + if (preview) return; + const formData = new FormData(); + + // const keysBody = Object.keys(body) + // const content:any = {} + // fields.forEach((key) => { + // if (keysBody.includes(key)) content[key] = body.key + // }) + + const answers = [ + { + question_id: questionId, + content: pointsSum.toString(), + result: false, + qid, + }, + ]; + + formData.append("answers", JSON.stringify(answers)); + formData.append("qid", qid); + + return publicationMakeRequest({ + url: domain + `/answer/v1.0.0/answer`, + body: formData, + method: "POST", + }); +} diff --git a/lib/components/ViewPublicationPage/ResultForm.tsx b/lib/components/ViewPublicationPage/ResultForm.tsx index a16f332..bb81b48 100644 --- a/lib/components/ViewPublicationPage/ResultForm.tsx +++ b/lib/components/ViewPublicationPage/ResultForm.tsx @@ -17,7 +17,7 @@ import QuizVideo from "@/ui_kit/VideoIframe/VideoIframe"; import { TextAccordion } from "./tools/TextAccordion"; import { PointSystemResultList } from "./PointSystemResultList"; import { enqueueSnackbar } from "notistack"; -import { sendFC } from "@/api/quizRelase"; +import { sendFC, sendResult } from "@/api/quizRelase"; type ResultFormProps = { resultQuestion: QuizQuestionResult; @@ -57,6 +57,21 @@ export const ResultForm = ({ resultQuestion }: ResultFormProps) => { enqueueSnackbar("Заявка не может быть отправлена"); } } + if (Boolean(settings.cfg.score)) { + try { + await sendResult({ + questionId: resultQuestion.id, + pointsSum, + qid: quizId, + preview, + }); + + const sessions = JSON.parse(localStorage.getItem("sessions") || "{}"); + localStorage.setItem("sessions", JSON.stringify({ ...sessions, [quizId]: new Date().getTime() })); + } catch (e) { + enqueueSnackbar("Количество баллов не может быть отправлено"); + } + } })(); }, []);