Skip to content
Snippets Groups Projects
Commit 02b4b9c3 authored by BURCKEL MAXIME's avatar BURCKEL MAXIME
Browse files

scrum mode

parent 9aa14548
Branches
No related merge requests found
......@@ -361,41 +361,46 @@ async function startServer() {
});
socket.on("joinScrumLobby", ({ lobbyId, username }) => {
console.log(
`[Socket] Demande de rejoindre le Scrum Lobby pour ${lobbyId} par ${username}`
);
if (username) {
console.log(
`[Socket] Demande de rejoindre le Scrum Lobby pour ${lobbyId} par ${username}`
);
// Vérifier si le Scrum Lobby existe
if (!scrumData[lobbyId]) {
console.error(`[Error] Le Scrum Lobby ${lobbyId} n'existe pas.`);
socket.emit("error", { message: "Scrum Lobby introuvable." });
return;
}
// Vérifier si le Scrum Lobby existe
if (!scrumData[lobbyId]) {
console.error(`[Error] Le Scrum Lobby ${lobbyId} n'existe pas.`);
socket.emit("error", { message: "Scrum Lobby introuvable." });
return;
}
// Ajouter l'utilisateur au lobby s'il n'est pas déjà dedans
if (!lobbies[lobbyId]?.participants.includes(username)) {
lobbies[lobbyId].participants.push(username);
}
// Ajouter l'utilisateur au lobby s'il n'est pas déjà dedans
if (!lobbies[lobbyId]?.participants.includes(username)) {
lobbies[lobbyId].participants.push(username);
}
// Si l'utilisateur n'a pas de score, l'ajouter avec un score de 0
if (!scrumData[lobbyId].scores[username]) {
scrumData[lobbyId].scores[username] = 0;
}
// Si l'utilisateur n'a pas de score, l'ajouter avec un score de 0
if (!scrumData[lobbyId].scores[username]) {
scrumData[lobbyId].scores[username] = 0;
}
// Joindre le socket au lobby
socket.join(lobbyId);
// Joindre le socket au lobby
socket.join(lobbyId);
console.log(`[Socket] ${username} a rejoint le Scrum Lobby ${lobbyId}`);
console.log(
`[Socket] ${username} a rejoint le Scrum Lobby ${lobbyId}`
);
// Diffuser les données mises à jour du Scrum Lobby à tous les membres
io.to(lobbyId).emit("scrumLobbyUpdated", {
scores: scrumData[lobbyId].scores,
});
// Diffuser les données mises à jour du Scrum Lobby à tous les membres
io.to(lobbyId).emit("scrumLobbyUpdated", {
scores: scrumData[lobbyId].scores,
});
}
});
socket.on(
"submitScrumAnswer",
({ lobbyId, quizId, username, answer, correct }) => {
console.log("submitScrumAnswer");
const scrum = scrumData[lobbyId];
if (!scrum) {
console.error(
......
export const API_URL = import.meta.env.VITE_API_URL || "http://localhost:2728";
//export const API_URL = import.meta.env.VITE_API_URL || "http://localhost:2728";
export const API_URL = "https://kwisos.servegame.com/api";
......@@ -467,4 +467,3 @@ export async function generateOptions(args: IAGeneration): Promise<IAResponse> {
throw error;
}
}
......@@ -58,15 +58,17 @@ export default function QuizQuestionPage() {
if (!fetchedQuiz?.idCurrentQuestion) {
setIsQuizFinished(true);
} else {
setLocalQuiz(fetchedQuiz);
setScore(fetchedQuiz?.score || 0);
setCurrentQuestionId(fetchedQuiz?.idCurrentQuestion || null);
const user = await getUserDetails(String(token));
if (!user) {
throw new Error("This user does not exist");
}
if (fetchedQuiz) {
setLocalQuiz(fetchedQuiz);
setScore(fetchedQuiz?.score || 0);
setCurrentQuestionId(fetchedQuiz?.idCurrentQuestion || null);
const user = await getUserDetails(String(token));
if (!user) {
throw new Error("This user does not exist");
}
setUser(user);
setUser(user);
}
}
} catch (error) {
console.error("Error fetching quiz:", error);
......@@ -77,7 +79,7 @@ export default function QuizQuestionPage() {
};
fetchQuiz();
}, [params.quizId, token]);
}, [params.quizId, token, isSubmitted]);
useEffect(() => {
console.log("test", currentQuestionId);
......@@ -97,16 +99,14 @@ export default function QuizQuestionPage() {
setSocket(socketConnection);
}
if (userDetails) {
socketConnection.emit("createScrumLobby", {
lobbyId: params.lobbyId,
quizId: params.quizId,
});
socketConnection.emit("joinScrumLobby", {
lobbyId: params.lobbyId,
username: userDetails.nickname,
});
}
socketConnection.emit("createScrumLobby", {
lobbyId: params.lobbyId,
quizId: params.quizId,
});
socketConnection.emit("joinScrumLobby", {
lobbyId: params.lobbyId,
username: userDetails?.nickname,
});
socketConnection.on("scrumLobbyUpdated", ({ scores }) => {
setScrumScores(scores);
......@@ -134,10 +134,10 @@ export default function QuizQuestionPage() {
}
});
return () => {
socketConnection.disconnect();
console.log("[Socket] Déconnecté du serveur WebSocket.");
};
// return () => {
// socketConnection.disconnect();
// console.log("[Socket] Déconnecté du serveur WebSocket.");
// };
}, [quizz, userDetails, token]);
const currentQuestion = quizz?.questions.find(
......@@ -152,6 +152,7 @@ export default function QuizQuestionPage() {
setIsSubmitted(true);
if (currentQuestionId) {
console.log("submit");
try {
const isAnswerCorrect = await isCorrectAnswer(
currentQuestionId,
......@@ -165,6 +166,10 @@ export default function QuizQuestionPage() {
});
console.log(isAnswerCorrect?.isCorrect);
const timer = setTimeout(() => {
console.log("affichage réponse");
}, 1000);
clearTimeout(timer);
socket.emit("submitScrumAnswer", {
lobbyId: params.lobbyId,
......@@ -173,6 +178,7 @@ export default function QuizQuestionPage() {
answer: option,
correct: isAnswerCorrect?.isCorrect,
});
console.log("socket", socket);
} catch (error) {
console.error(
"Erreur lors de la vérification de la réponse :",
......@@ -207,7 +213,7 @@ export default function QuizQuestionPage() {
<QuizResultPage
score={scrumScores[userDetails?.nickname || "Anonymous"]}
totalQuestions={quizz.questions.length}
correct={score}
correct={scrumScores[userDetails.nickname]}
wrong={quizz.questions.length - score}
quizId={quizz.id}
token={String(token)}
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment