diff --git a/src/routes/multiplayer/quiz/PlayingQuizMulti.tsx b/src/routes/multiplayer/quiz/PlayingQuizMulti.tsx index 1322596e5a035249084bf85bcbd65397c53db052..03e53f988fd841f50fe6cb9bce7a18d0f35820ff 100644 --- a/src/routes/multiplayer/quiz/PlayingQuizMulti.tsx +++ b/src/routes/multiplayer/quiz/PlayingQuizMulti.tsx @@ -75,7 +75,7 @@ export function PlayingQuizMulti() { ) : ( <> <QuizTopMulti quizInformations={null} actualQuestion={actualQuestion} score={score} questionCount={questionCount} setStopQuizModalIsOpen={setStopQuizModalIsOpen} /> - <QuizBotMulti actualQuestion={actualQuestion} isHost={true} setPlayingQuizState={setPlayingQuizState} playingQuizState={playingQuizState} OpenModalEndQuiz={setEndQuizModalIsOpen}/> + <QuizBotMulti actualQuestion={actualQuestion} isHost={true} setPlayingQuizState={setPlayingQuizState} playingQuizState={playingQuizState} OpenModalEndQuiz={setEndQuizModalIsOpen} setScore={setScore}/> <StopQuizModal isOpen={stopQuizModalIsOpen} onClose={() => setStopQuizModalIsOpen(false)} /> <EndQuizModalMulti isOpen={endQuizModalIsOpen} diff --git a/src/routes/multiplayer/quiz/quizBot/QuizBotMulti.tsx b/src/routes/multiplayer/quiz/quizBot/QuizBotMulti.tsx index e26440f316b57b16ecdea595d4a1d525e6936121..3f5d86f934ae7268ab48f12eb0093ac814625650 100644 --- a/src/routes/multiplayer/quiz/quizBot/QuizBotMulti.tsx +++ b/src/routes/multiplayer/quiz/quizBot/QuizBotMulti.tsx @@ -8,6 +8,7 @@ import {Question} from "../../../../models/Question.ts"; import {AnswerSSEResponse} from "../../../../models/Response/AnswerSSEResponse.ts"; import {useEventSourceContext} from "../../../../components/EventSourceContextType.tsx"; import {PlayingQuizState} from "../../../../models/PlayingQuizState.ts"; +import HttpError from "../../../../services/HttpError.ts"; interface Props { actualQuestion: Question; @@ -15,6 +16,7 @@ interface Props { setPlayingQuizState: (playingQuizState: PlayingQuizState) => void; playingQuizState: PlayingQuizState; OpenModalEndQuiz: (bool: boolean) => void; + setScore: (score: number) => void; } @@ -38,12 +40,12 @@ const getStyleOfAnswerButton = ( } return "answer-button"; }; -export function QuizBotMulti({ actualQuestion, isHost, playingQuizState, setPlayingQuizState }: Props) { +export function QuizBotMulti({ actualQuestion, isHost, playingQuizState, setPlayingQuizState, setScore }: Props) { const [questionIsFinished, setQuestionIsFinished] = useState(false); const [selectedAnswerId, setSelectedAnswerId] = useState<number | null>(null); const [validationButtonIsDisabled, setValidationButtonIsDisabled] = useState(true); const [correctAnswerId, setCorrectAnswerId] = useState<number | null>(null); - const { nextQuestion, answerQuestion, revealAnswer } = useMultiplayerService(); + const { nextQuestion, answerQuestion, revealAnswer, getScore } = useMultiplayerService(); const { eventSource } = useEventSourceContext(); const initSSE = async () => { @@ -75,6 +77,13 @@ export function QuizBotMulti({ actualQuestion, isHost, playingQuizState, setPlay { await revealAnswer(); } + const scoreFetched = await getScore(); + if(HttpError.isHttpError(scoreFetched)) + { + return; + } + setScore(scoreFetched); + }; const onContinue = () => { diff --git a/src/services/MultiplayerService.ts b/src/services/MultiplayerService.ts index 4ceef968ad176ba602994739d2ce1db87a931092..bb918bad8d6a902e1f8b57848f2ec31e788b816d 100644 --- a/src/services/MultiplayerService.ts +++ b/src/services/MultiplayerService.ts @@ -160,6 +160,25 @@ export const useMultiplayerService = () => { } }; + const getScore = async () : Promise<number | HttpError> => { + console.log("getScore"); + try { + const response = await axios.get(`${url}/party/score`, { + withCredentials: true, + }); + console.log("getScore done"); + return response.data.score; + } catch (error: any) { + console.log("Error while startParty:", error); + + if (error.response) { + return new HttpError(error.response.status, error.response.data?.message || "HTTP error"); + } else { + return new HttpError(500, "Unexpected error: " + error.message); + } + } + }; + return { createParty, getCategories, @@ -176,5 +195,6 @@ export const useMultiplayerService = () => { revealAnswer, answerQuestion, nextQuestion, + getScore, }; };