From 652783868d6b008d2d47c490cffbaf8457fec7af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20D=C3=ADaz=20Cancillo?= Date: Sat, 2 Mar 2024 16:08:28 +0100 Subject: [PATCH 1/3] =?UTF-8?q?Comienzo=20generaci=C3=B3n=20=C3=ADndices?= =?UTF-8?q?=20questiondb?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gatewayservice/gateway-service.js | 14 ++++++++++++++ webapp/src/components/Game.js | 21 +++++++++++++++++++-- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/gatewayservice/gateway-service.js b/gatewayservice/gateway-service.js index 060b276d..8907f539 100644 --- a/gatewayservice/gateway-service.js +++ b/gatewayservice/gateway-service.js @@ -52,6 +52,20 @@ app.post('/getQuestionBody', async (req, res) => { } }); +app.post('/addQuestion', async (req, res) => { + try { + // Reenviar los datos recibidos en la solicitud POST al servicio de preguntas + const questionResponse = await axios.post(`${questionServiceUrl}/addQuestion`, req.body); + res.json(questionResponse.data); + } catch (error) { + if (error.response) { + res.status(error.response.status).json({ error: error.response.data.error }); + } else { + res.status(500).json({ error: 'Error interno del servidor' }); + } + } +}); + // Start the gateway service const server = app.listen(port, () => { console.log(`Gateway Service listening at http://localhost:${port}`); diff --git a/webapp/src/components/Game.js b/webapp/src/components/Game.js index a3265324..aaf279b2 100644 --- a/webapp/src/components/Game.js +++ b/webapp/src/components/Game.js @@ -8,7 +8,7 @@ import { Container, Typography, TextField, Button, Snackbar } from '@mui/materia import Link from '@mui/material/Link'; const Game=() =>{ - const [questionBody, setquestionBody] = useState('');//pregunta aleatoria cuerpo + const [questionBody, setQuestionBody] = useState('');//pregunta aleatoria cuerpo const [informacionWikidata, setInformacionWikidata] = useState(''); const [respuestaCorrecta, setRespuestaCorrecta] = useState(''); const [questionType, setQuestionType] = useState('');//para el tipo de pregunta a buscar @@ -35,7 +35,7 @@ const Game=() =>{ const response = await axios.post(`${apiEndpoint}/getQuestionBody`); - setquestionBody(response.data.questionBody);//obtengo los datos del cuerpo de la pregunta + setQuestionBody(response.data.questionBody);//obtengo los datos del cuerpo de la pregunta setQuestionType(response.data.typeQuestion); setAnswerType(response.data.typeAnswer); @@ -92,6 +92,20 @@ const Game=() =>{ console.error("Error al realizar la consulta en Wikidata", error); } }; + + // Función para realizar la petición POST para cargar los tipos de pregunta en la base de datos de mongo + const peticionPOST = async () => { + try { + const response = await axios.post(`${apiEndpoint}/addQuestion`, { + questionBody: '(Probando modificado) ¿Cuál es la capital de ', + typeQuestion: 'pais', + typeAnswer: 'capital' + }); + console.log('Respuesta de la petición POST:', response.data); + } catch (error) { + console.error('Error en la petición POST:', error); + } + }; const handleButtonClick = () => { setNumberClics(numberClics + 1); @@ -112,6 +126,9 @@ const Game=() =>{ {(numberClics > 10 || timer>180) ? (

Fin

) : (<> + Pregunta Número {numberClics} : From d24c91d2c824f4a484c827b262a5a86d444a777e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20D=C3=ADaz=20Cancillo?= Date: Sat, 2 Mar 2024 19:31:02 +0100 Subject: [PATCH 2/3] =?UTF-8?q?Funcionalidad=20nueva=20bot=C3=B3n=20comien?= =?UTF-8?q?zo=20de=20partida?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webapp/src/components/Game.js | 45 +++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/webapp/src/components/Game.js b/webapp/src/components/Game.js index aaf279b2..f5f629fe 100644 --- a/webapp/src/components/Game.js +++ b/webapp/src/components/Game.js @@ -18,7 +18,19 @@ const Game=() =>{ const apiEndpoint = process.env.REACT_APP_API_ENDPOINT || 'http://localhost:8000'; + // se ejecuta una vez cuando se cargue el componente y llena la BD con las plantillas posibles + // además de generar la pregunta nº1 + useEffect(() => { + const fetchData = async () => { + await peticionPOST(); // Espera a que la primera función se complete + obtenerPreguntaAleatoria(); // Luego ejecuta la segunda función + }; + fetchData(); // Llamada a la función async + }, []); + + // se ejecuta una vez cuando se cargue el componente y establece aumentar "timer" en una + // unidad cada 1000ms useEffect(() => { const interval = setInterval(() => { setTimer(prevTime => prevTime + 1); @@ -26,9 +38,23 @@ const Game=() =>{ return () => clearInterval(interval); }, []); - //para el tipo de respuesta a buscar + // Función para realizar la petición POST para cargar los tipos de pregunta en la base de datos de mongo + const peticionPOST = async () => { + try { + const response = await axios.post(`${apiEndpoint}/addQuestion`, { + questionBody: '¿Cuál es la capital de ', + typeQuestion: 'pais', + typeAnswer: 'capital' + }); + console.log('Respuesta de la petición POST:', response.data); + } catch (error) { + console.error('Error en la petición POST:', error); + } + }; + //para el tipo de respuesta a buscar + // Obtener pregunta una pregunta aleatoria al acceder a la url const obtenerPreguntaAleatoria = async () => { try { @@ -92,20 +118,6 @@ const Game=() =>{ console.error("Error al realizar la consulta en Wikidata", error); } }; - - // Función para realizar la petición POST para cargar los tipos de pregunta en la base de datos de mongo - const peticionPOST = async () => { - try { - const response = await axios.post(`${apiEndpoint}/addQuestion`, { - questionBody: '(Probando modificado) ¿Cuál es la capital de ', - typeQuestion: 'pais', - typeAnswer: 'capital' - }); - console.log('Respuesta de la petición POST:', response.data); - } catch (error) { - console.error('Error en la petición POST:', error); - } - }; const handleButtonClick = () => { setNumberClics(numberClics + 1); @@ -126,9 +138,6 @@ const Game=() =>{ {(numberClics > 10 || timer>180) ? (

Fin

) : (<> - Pregunta Número {numberClics} : From 1df653a54d7fb86aa575d8a7ccf24b365274ab99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20D=C3=ADaz=20Cancillo?= Date: Sat, 2 Mar 2024 19:46:18 +0100 Subject: [PATCH 3/3] =?UTF-8?q?Mejora=20aspecto=20est=C3=A9tico=20pantalla?= =?UTF-8?q?=20juego.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webapp/src/components/Game.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webapp/src/components/Game.js b/webapp/src/components/Game.js index f5f629fe..ded153ba 100644 --- a/webapp/src/components/Game.js +++ b/webapp/src/components/Game.js @@ -144,7 +144,7 @@ const Game=() =>{ 120 && (timer%60)%2===0)?'red':'inherit', fontStyle:'italic', fontWeight: (timer>150 && (timer%60)%2===0)?'bold':'inherit'}}> ¡Tiempo restante {handleTimeRemaining()}! -
+
{questionBody} {informacionWikidata}