diff --git a/gatewayservice/gateway-service.js b/gatewayservice/gateway-service.js index 9e240ac..51eb962 100644 --- a/gatewayservice/gateway-service.js +++ b/gatewayservice/gateway-service.js @@ -56,39 +56,20 @@ app.get('/pregunta', async (req, res) => { } }); -app.get('/updateCorrectAnswers', async (req, res) => { - console.log(req.query) - const params = {username: req.query.username, numAnswers: req.query.numAnswers}; - try{ - const updateStatsResponse = await axios.get(userServiceUrl+ `/updateCorrectAnswers?params=${params}`) - res.json(updateStatsResponse.data); - }catch(error){ - res.status(error.response.status).json({error: error.response.data.error}); - } -}); - -app.get('/updateIncorrectAnswers', async (req, res) => { - const params = {username: req.query.username, numAnswers: req.query.numAnswers}; - try{ - const updateStatsResponse = await axios.get(userServiceUrl+ `/updateIncorrectAnswers?params=${params}`) +app.get('/updateStats', async (req, res) => { + //const params = {username: req.query.username, numAnswers: req.query.numAnswers}; + const { username, numRespuestasCorrectas, numRespuestasIncorrectas} = req.query; + console.log("username: "+username); + console.log("correctas: "+numRespuestasCorrectas); + console.log("incorrectas: "+numRespuestasIncorrectas); + try{ + const updateStatsResponse = await axios.get(userServiceUrl+ `/updateStats?username=${username}&numRespuestasCorrectas=${numRespuestasCorrectas}&numRespuestasIncorrectas=${numRespuestasIncorrectas}`) res.json(updateStatsResponse.data); }catch(error){ res.status(error.response.status).json({error: error.response.data.error}); } }); -app.get('/updateCompletedGames', async (req, res) => { - const { username } = req.query; - try{ - const updateStatsResponse = await axios.get(userServiceUrl+ `/updateCompletedGames?username=${username}`) - res.json(updateStatsResponse.data); - }catch(error){ - res.status(error.response.status).json({error: error.response.data.error}); - } -}); - - - app.get('/getUserData', async (req, res) => { console.log(req.query) const { username } = req.query; diff --git a/userservice/userservice/user-service.js b/userservice/userservice/user-service.js index 99fb9a0..1f8305b 100644 --- a/userservice/userservice/user-service.js +++ b/userservice/userservice/user-service.js @@ -45,43 +45,24 @@ app.post('/adduser', async (req, res) => { res.status(400).json({ error: error.message }); }}); -app.get('/updateCorrectAnswers', async (req,res) => { - console.log(req.query) - //const { username } = req.query; - const { username } = req.query.username; - const { numAnswers } = req.query.numAnswers; +app.get('/updateStats', async (req,res) => { + const { username, numRespuestasCorrectas, numRespuestasIncorrectas} = req.query; + console.log("username1: "+username); + console.log("correctas1: "+numRespuestasCorrectas); + console.log("incorrectas1: "+numRespuestasIncorrectas); try { - const user = await User.findOne({ username }); - if (!user) { - return res.status(404).json({ success: false, message: 'Usuario no encontrado' }); - } - // Incrementa las respuestas correctas del usuario - user.correctAnswers = numAnswers; - await user.save(); - return res.status(200).json({ success: true, message: 'Respuestas correctas actualizada con éxito' }); - } catch (error) { - console.error('Error al actualizar las respuestas correctas:', error); - return res.status(500).json({ success: false, message: 'Error al actualizar las respuestas correctas' }); - } -}) - -app.get('/updateIncorrectAnswers', async (req,res) => { - console.log(req.query) - //const { username } = req.query; - const { username } = req.query.username; - const { numAnswers } = req.query.numAnswers; - try { - const user = await User.findOne({ username }); - if (!user) { - return res.status(404).json({ success: false, message: 'Usuario no encontrado' }); - } - // Incrementa las respuestas incorrectas del usuario - user.incorrectAnswers = numAnswers; - await user.save(); - return res.status(200).json({ success: true, message: 'Respuestas incorrectas actualizada con éxito' }); + const user = await User.findOne({ username }); + if (!user) { + return res.status(404).json({ success: false, message: 'Usuario no encontrado' }); + } + // Cambia las estadisticas del usuario + user.correctAnswers += numRespuestasCorrectas; + user.incorrectAnswers += numRespuestasIncorrectas; + user.completedGames++; + await user.save(); + return res.status(200).json({ success: true, message: 'Estadísticas actualizadas con éxito' }); } catch (error) { - console.error('Error al actualizar la respuesta correcta:', error); - return res.status(500).json({ success: false, message: 'Error al actualizar las respuestas incorrectas' }); + return res.status(500).json({ success: false, message: 'Error al actualizar las Estadísticas' }); } }) @@ -99,25 +80,6 @@ app.get('/getUserData', async (req, res) => { } }); - -app.get('/updateCompletedGames', async (req,res) => { - console.log(req.query) - const { username } = req.query; - try { - const user = await User.findOne({ username }); - if (!user) { - return res.status(404).json({ success: false, message: 'Usuario no encontrado' }); - } - user.completedGames += 1; - await user.save(); - return res.status(200).json({ success: true, message: 'Juegos completados actualizado con éxito' }); - } catch (error) { - console.error('Error al actualizar Juegos completados:', error); - return res.status(500).json({ success: false, message: 'Error al actualizar Juegos completados' }); - } -}) - - const server = app.listen(port, () => { console.log(`User Service listening at http://localhost:${port}`); }); diff --git a/webapp/src/components/Pages/Estadisticas.js b/webapp/src/components/Pages/Estadisticas.js index 72562a0..244a24d 100644 --- a/webapp/src/components/Pages/Estadisticas.js +++ b/webapp/src/components/Pages/Estadisticas.js @@ -1,6 +1,6 @@ // src/components/Login.js import React, { useState, useEffect } from 'react'; -import { Container, Typography, TextField, Button, Snackbar } from '@mui/material'; +import { Container } from '@mui/material'; import '../Estilos/estadisticas.css'; import axios from 'axios'; diff --git a/webapp/src/components/Pages/Juego.js b/webapp/src/components/Pages/Juego.js index 367a24f..4dc2a68 100644 --- a/webapp/src/components/Pages/Juego.js +++ b/webapp/src/components/Pages/Juego.js @@ -4,7 +4,6 @@ import axios from 'axios'; import '../Estilos/juego.css'; import { Container } from '@mui/material'; import Temporizador from '../Temporizador'; -import { jwtDecode } from 'jwt-decode'; const Juego = ({isLogged, username, numPreguntas}) => { //La pregunta (string) @@ -20,13 +19,11 @@ const Juego = ({isLogged, username, numPreguntas}) => { //Para saber si el temporizador se ha parado al haber respondido una respuesta const [pausarTemporizador, setPausarTemporizador] = useState(false) const [restartTemporizador, setRestartTemporizador] = useState(false) - const [firstRender, setFirstRender] = useState(false); const[ready, setReady] = useState(false) const [numPreguntaActual, setNumPreguntaActual] = useState(0) const [arPreg, setArPreg] = useState([]) const [finishGame, setFinishGame] = useState(false) - const [numRespuestasCorrectas, setNumRespuestasCorrectas] = useState(0) const [numRespuestasIncorrectas, setNumRespuestasIncorrectas] = useState(0) @@ -43,39 +40,14 @@ const Juego = ({isLogged, username, numPreguntas}) => { //Control de las estadísticas - const updateCorrectAnswers = async () => { - try { - //const response = await axios.get(`${apiEndpoint}/updateCorrectAnswers?username=${username}`); - const params = {username: {username}, numAnswers: {numRespuestasCorrectas}}; - const response = await axios.get(`${apiEndpoint}/updateCorrectAnswers?params=${params}`); - console.log('Respuestas correctas actualizada con éxito:', response.data); - // Realizar otras acciones según sea necesario - } catch (error) { - console.error('Error al actualizar la respuesta correcta:', error); - // Manejar el error de acuerdo a tus necesidades - } - }; - - const updateIncorrectAnswers = async () => { - try { - //const response = await axios.get(`${apiEndpoint}/updateIncorrectAnswers?username=${username}`); - const params = {username: {username}, numAnswers: {numRespuestasIncorrectas}}; - const response = await axios.get(`${apiEndpoint}/updateIncorrectAnswers?params=${params}`); - console.log('Respuesta incorrecta actualizada con éxito:', response.data); - } catch (error) { - console.error('Error al actualizar la respuesta incorrecta:', error); - } - }; - - const updateCompletedGames = async () => { + const updateStats = async () => { try { - const response = await axios.get(`${apiEndpoint}/updateCompletedGames?username=${username}`); - console.log('Juegos completados actualizado con éxito:', response.data); + const response = await axios.get(`${apiEndpoint}/updateStats?username=${username}&numRespuestasCorrectas=${numRespuestasCorrectas}&numRespuestasIncorrectas=${numRespuestasIncorrectas}`); + console.log('Estadisticas actualizadas con éxito:', response.data); } catch (error) { - console.error('Error al actualizar Juegos completados:', error); + console.error('Error al actualizar las estadisticas:', error); } }; - //// //Función que genera un numero de preguntas determinado async function crearPreguntas(numPreguntas){ @@ -97,7 +69,7 @@ const Juego = ({isLogged, username, numPreguntas}) => { ) } catch (error) { - console.error('Error al actualizar la respuesta correcta:', error); + console.error('Error al actualizar las estadisticas:', error); // Manejar el error de acuerdo a tus necesidades } numPreguntas--; @@ -129,13 +101,13 @@ const Juego = ({isLogged, username, numPreguntas}) => { if(respuesta == resCorr){ console.log("entro a respuesta correcta") //Aumenta en 1 en las estadisticas de juegos ganado - setNumRespuestasCorrectas(numRespuestasCorrectas++); - //updateCorrectAnswers(); + setNumRespuestasCorrectas(numRespuestasCorrectas+1); + console.log("Correctas: "+numRespuestasCorrectas) setVictoria(true) } else{ - setNumRespuestasIncorrectas(numRespuestasIncorrectas++); - //updateIncorrectAnswers(); + setNumRespuestasIncorrectas(numRespuestasIncorrectas + 1); + console.log("Incorrectas: "+numRespuestasIncorrectas) setVictoria(false) } //storeResult(victoria) @@ -214,7 +186,7 @@ const Juego = ({isLogged, username, numPreguntas}) => { //Primer render para un comportamiento diferente useEffect(() => { - updateCompletedGames() + //updateCompletedGames() }, [finishGame]) //Funcion que se llama al hacer click en el boton Siguiente @@ -222,7 +194,7 @@ const Juego = ({isLogged, username, numPreguntas}) => { if(numPreguntaActual==numPreguntas){ setFinishGame(true) setReady(false) - finishGame() + //finishGame() return } descolorearTodos() @@ -236,11 +208,7 @@ const Juego = ({isLogged, username, numPreguntas}) => { //Funcion que se llama al hacer click en el boton Siguiente const clickFinalizar = () => { - //updateCompletedGames(); - updateCorrectAnswers(); - updateIncorrectAnswers(); - //almacenar aqui partida jugada a estadisticas - //y lo que se quiera + updateStats(); } const handleRestart = () => { @@ -260,8 +228,8 @@ const Juego = ({isLogged, username, numPreguntas}) => { - + > :