From efe274021dbf94fedca6b050bae5d1331dc3e57d Mon Sep 17 00:00:00 2001
From: "narindra.rajohnso" <narindra-hasimanjaka-david.rajohnson@etu.hesge.ch>
Date: Mon, 19 Jun 2023 01:56:20 +0200
Subject: [PATCH] correct number of questions

---
 API/src/database/database.sqlite | Bin 20480 -> 20480 bytes
 API/src/express/Server.ts        |   2 +-
 API/src/routes/router-gamer.ts   |   7 -------
 API/src/socket.io/ServerIO.ts    |  16 ++++++++++++----
 4 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/API/src/database/database.sqlite b/API/src/database/database.sqlite
index a74c5558ea90675f970a7f52c624bbbf3659a5af..0a475753574c807c184878342f72a292d21d2c57 100644
GIT binary patch
delta 284
zcmZozz}T>Wae_2s-$WT_#=eaSOZeq@In@~XmH68E`*`2-hVV%9?B?#_X5=d8V&k02
zskX84IY&Luc7_R(siMNlqMn|`DT!&O7A9Wl?qTk^M#cVth5Ve7+M>eB;xIX9e?K=*
z7gxU!Pe&g`Ma7cT;*#Q&w8Y|+G>77pG`-}E#FX63JR<`mV_gF?T|)~6BV#L511l2)
zJ#!;-1#JTZD+2=*SwSmP6Dw0oJyRnisPyKUlG$u>y!;Ui{JH#>`QP#H;J?Ek!9Sb7
ziGLk`1^+SrWd5GbiV9}@++56(j1VXDZ%)<^6<{=;ywl!@&sf3G!pgwV%E&^`z|?T_
IPkVL&0KDEyJOBUy

delta 109
zcmZozz}T>Wae_2s_e2?I#_o*?OZa7YIA=2QEAh4S_wl~v4dIdI+0EU<&B#^G#l|^v
zV`C-f=9!Y&Y<xWY$qf9t{FnLP@$cZjvspyJg@0lI@8)FvPyt4R$vf?hCa<$&<FK?c
Pwa_y+HrxEuo?QR{;v*m@

diff --git a/API/src/express/Server.ts b/API/src/express/Server.ts
index 329c81d..28f25a3 100644
--- a/API/src/express/Server.ts
+++ b/API/src/express/Server.ts
@@ -64,7 +64,7 @@ class Server {
         this.io = new ServerIO(this.server);
         this.io.use((socket: SocketIoInfo, next) => {
             const token = socket.handshake.auth.token;
-
+            console.log("token=", token)
             try {
                 socket.user = jwt.verify(token, process.env.SECRET_KEY);
                 next();
diff --git a/API/src/routes/router-gamer.ts b/API/src/routes/router-gamer.ts
index 3fee657..fbe8984 100644
--- a/API/src/routes/router-gamer.ts
+++ b/API/src/routes/router-gamer.ts
@@ -10,11 +10,4 @@ router.get('/:username', checkExistingUser, verifyToken, (req: TokenRequest, res
     res.status(StatusCodes.OK).json({access_user: req.user});
 });
 
-
-
-
-
-
-
-
 export default router;
diff --git a/API/src/socket.io/ServerIO.ts b/API/src/socket.io/ServerIO.ts
index fc98754..94347af 100644
--- a/API/src/socket.io/ServerIO.ts
+++ b/API/src/socket.io/ServerIO.ts
@@ -30,6 +30,11 @@ class ServerIO extends IO.Server {
 
 
         this.on('connection', (socket: SocketIoInfo) => {
+            if (!socket.user) {
+                // Jeton invalide, ne pas poursuivre la connexion
+                console.log('Jeton invalide');
+                return;
+            }
             logger.info(`Nouveau socket vers ${socket.client.conn.remoteAddress}`);
             console.log(`Socket info: ${socket.user.username} // ${socket.user.firstname} // ${socket.user.lastname}`);
             this.initializeGame(socket);
@@ -104,6 +109,8 @@ class ServerIO extends IO.Server {
         });
 
         socket.on("validate-question", async (responseSelected) => {
+            this.nbQuestion+=1;
+            console.log("nb question: ", this.nbQuestion);
             console.log("current question:", this.currentQuestion);
             if (responseSelected === this.currentQuestion.correctResponse) {
                 // le joueur gagne 1 point
@@ -116,7 +123,7 @@ class ServerIO extends IO.Server {
             }
             console.log("playerScore:", this.playersScore);
             let randomQuestion = await this.getRandomQuestion();
-            if(this.nbQuestion<=10){
+            if(this.nbQuestion<10){
                 this.emit("question", randomQuestion);
             }else{
                 const playersScoreFormatted = Object.keys(this.playersScore).reduce((formatted:any, key) => {
@@ -125,7 +132,6 @@ class ServerIO extends IO.Server {
                 }, {});
                 this.emit("game-finished", playersScoreFormatted);
             }
-            this.nbQuestion++;
 
         });
         socket.on("restart-game", ()=>{
@@ -145,7 +151,7 @@ class ServerIO extends IO.Server {
 
             // Vérifiez si le joueur est dans le dictionnaire
             if (this.players[playerKey]) {
-                // Le joueur est connecté, retirez-le du dictionnaire
+                delete socket.user;
                 delete this.players[playerKey];
                 delete this.playersReady[playerKey];
                 delete this.playersScore[playerKey];
@@ -189,7 +195,9 @@ class ServerIO extends IO.Server {
         this.currentQuestion = this.questions[randomIndex].dataValues;
         this.questions.splice(randomIndex, 1);
         // pour ne pas envoyer au frontend la reponse attendue
-        return {...this.currentQuestion};
+        let randomQuestion={...this.currentQuestion};
+        randomQuestion.correctResponse=-1;
+        return randomQuestion;
     }
 
     private testNumberOfReady() {
-- 
GitLab