From 8828bd190830ed3541424de43d81473d4477ecd0 Mon Sep 17 00:00:00 2001 From: iyanfdezz Date: Thu, 22 Feb 2024 20:32:41 +0100 Subject: [PATCH] =?UTF-8?q?Now=20the=20game=20saves=20on=20the=20users=20d?= =?UTF-8?q?atabase=20(no=20s=C3=A9=20si=20funciona)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- users/authservice/auth-service.js | 3 +++ users/userservice/game-model.js | 4 +++ webapp/src/pages/Clasico/Clasico.js | 42 +++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+) diff --git a/users/authservice/auth-service.js b/users/authservice/auth-service.js index edfdd026..20943611 100644 --- a/users/authservice/auth-service.js +++ b/users/authservice/auth-service.js @@ -40,6 +40,9 @@ app.post('/login', async (req, res) => { const token = jwt.sign({ userId: user._id }, 'your-secret-key', { expiresIn: '1h' }); //Almacenamos el token del usuario para su autentificación sessionStorage.setItem('token', token); + + sessionStorage.setItem('username', username); + // Respond with the token and user information res.json({ token: token, username: username, createdAt: user.createdAt }); } else { diff --git a/users/userservice/game-model.js b/users/userservice/game-model.js index 73311be0..04a2aba2 100644 --- a/users/userservice/game-model.js +++ b/users/userservice/game-model.js @@ -14,6 +14,10 @@ const gameSchema = new mongoose.Schema({ type: Number, default: 0 }, + avgTime: { + type: Number, + default: 0 + } }); const Game = mongoose.model('Game', gameSchema); diff --git a/webapp/src/pages/Clasico/Clasico.js b/webapp/src/pages/Clasico/Clasico.js index ca29f8fc..e6b00ff0 100644 --- a/webapp/src/pages/Clasico/Clasico.js +++ b/webapp/src/pages/Clasico/Clasico.js @@ -105,6 +105,48 @@ const JuegoPreguntas = () => { setTiempoMedio(tiempoTotal/(preguntasCorrectas+preguntasFalladas)); } + //Now we store the game in the user's DB + const username = sessionStorage.getItem('username'); + + const newGame = new Game({ + correctAnswers: preguntasCorrectas, + incorrectAnswers: preguntasFalladas, + points: puntuacion, + avgTime: tiempoMedio, + }); + + //SAVING THE GAME ON THE USERS DATABASE + + // Encontrar el usuario en la base de datos + User.findOne({ username }, (err, user) => { + if (err) { + console.error('Error al encontrar el usuario:', err); + // TODO : hacer la UI para el manejo de errores + } else { + + newGame.save((err, game) => { + + if (err) { + + console.error('Error al guardar el juego:', err); + // TODO : hacer la UI para el manejo de errores + } + else { + + user.games.push(game._id); + + user.save((err) => { + if (err) { + console.error('Error al guardar el usuario actualizado:', err); + // TODO : hacer la UI para el manejo de errores + } + }); + } + }); + + } + }); + setJuegoTerminado(true); } };