From acafa40d531a40020614ac184b36ffd8d1713009 Mon Sep 17 00:00:00 2001 From: UO276026 Date: Thu, 4 Apr 2024 09:46:43 +0200 Subject: [PATCH 01/11] Cambios en clase --- webapp/src/App.js | 2 +- webapp/src/components/Pages/Estadisticas.js | 5 +++-- webapp/src/components/Pages/Juego.js | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/webapp/src/App.js b/webapp/src/App.js index a5c5132..1a23d35 100644 --- a/webapp/src/App.js +++ b/webapp/src/App.js @@ -54,7 +54,7 @@ function App() { } />} + element={} />} /> diff --git a/webapp/src/components/Pages/Estadisticas.js b/webapp/src/components/Pages/Estadisticas.js index 1d085c4..94d7153 100644 --- a/webapp/src/components/Pages/Estadisticas.js +++ b/webapp/src/components/Pages/Estadisticas.js @@ -5,10 +5,10 @@ import '../Estilos/estadisticas.css'; import axios from 'axios'; -const Estadisticas = ({isLogged}) => { +const Estadisticas = ({isLogged, username}) => { const apiEndpoint = process.env.REACT_APP_API_ENDPOINT || 'http://localhost:8000'; - const [username, setUsername] = useState(''); + // const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); const [error, setError] = useState(''); const [correctAnswers, setCorrectAnswers] = useState(0); @@ -27,6 +27,7 @@ const Estadisticas = ({isLogged}) => { async function statsUser(){ try { + //const username = localStorage.getItem('username'); const response = await axios.get(`${apiEndpoint}/getUserData?username=${username}`); const datos = response.data; setCorrectAnswers(datos.correctAnswers); diff --git a/webapp/src/components/Pages/Juego.js b/webapp/src/components/Pages/Juego.js index c936dc9..058d7ba 100644 --- a/webapp/src/components/Pages/Juego.js +++ b/webapp/src/components/Pages/Juego.js @@ -44,7 +44,7 @@ const Juego = ({isLogged, username, numPreguntas}) => { //Control de las estadísticas const updateCorrectAnswers = async () => { try { - const username = localStorage.getItem('username'); + //const username = localStorage.getItem('username'); const response = await axios.get(`${apiEndpoint}/updateCorrectAnswers?username=${username}`); console.log('Respuesta correcta actualizada con éxito:', response.data); // Realizar otras acciones según sea necesario From 4bc3f3a888338fad70e7a13af0885d87f9d890bf Mon Sep 17 00:00:00 2001 From: Fernando Jose Gonzalez Sierra <90760906+UO277938@users.noreply.github.com> Date: Thu, 4 Apr 2024 09:54:19 +0200 Subject: [PATCH 02/11] Update release.yml --- .github/workflows/release.yml | 74 +++++++++++++++++++++++++++++++++-- 1 file changed, 70 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 43cd858..2513571 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,9 +12,16 @@ jobs: - uses: actions/setup-node@v4 with: node-version: 20 - - run: npm --prefix questionservice ci + - run: npm --prefix userservice/authservice ci + - run: npm --prefix userservice/userservice ci + - run: npm --prefix gatewayservice ci - run: npm --prefix webapp ci - #- run: npm --prefix webapp test -- --coverage + - run: npm --prefix questionservice ci + - run: npm --prefix userservice/authservice test -- --coverage + - run: npm --prefix userservice/userservice test -- --coverage + - run: npm --prefix gatewayservice test -- --coverage + - run: npm --prefix webapp test -- --coverage + - run: npm --prefix questionservice test -- --coverage - name: Analyze with SonarCloud uses: sonarsource/sonarcloud-github-action@master env: @@ -28,10 +35,13 @@ jobs: - uses: actions/setup-node@v4 with: node-version: 20 + - run: npm --prefix userservice/authservice install + - run: npm --prefix userservice/userservice install + - run: npm --prefix gatewayservice install - run: npm --prefix questionservice install - run: npm --prefix webapp install - run: npm --prefix webapp run build - #- run: npm --prefix webapp run test:e2e + - run: npm --prefix webapp run test:e2e docker-push-webapp: name: Push webapp Docker Image to GitHub Packages runs-on: ubuntu-latest @@ -52,6 +62,57 @@ jobs: registry: ghcr.io workdir: webapp buildargs: API_URI + docker-push-authservice: + name: Push auth service Docker Image to GitHub Packages + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + needs: [e2e-tests] + steps: + - uses: actions/checkout@v4 + - name: Publish to Registry + uses: elgohr/Publish-Docker-Github-Action@v5 + with: + name: arquisoft/wiq_es05a/authservice + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + registry: ghcr.io + workdir: users/authservice + docker-push-userservice: + name: Push user service Docker Image to GitHub Packages + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + needs: [e2e-tests] + steps: + - uses: actions/checkout@v4 + - name: Publish to Registry + uses: elgohr/Publish-Docker-Github-Action@v5 + with: + name: arquisoft/wiq_es05a/userservice + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + registry: ghcr.io + workdir: users/userservice + docker-push-gatewayservice: + name: Push gateway service Docker Image to GitHub Packages + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + needs: [e2e-tests] + steps: + - uses: actions/checkout@v4 + - name: Publish to Registry + uses: elgohr/Publish-Docker-Github-Action@v5 + with: + name: arquisoft/wiq_es05a/gatewayservice + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + registry: ghcr.io + workdir: gatewayservice docker-push-questionservice: name: Push questionservice Docker Image to GitHub Packages runs-on: ubuntu-latest @@ -72,7 +133,12 @@ jobs: deploy: name: Deploy over SSH runs-on: ubuntu-latest - needs: [docker-push-questionservice,docker-push-webapp] + needs: + - docker-push-userservice + - docker-push-authservice + - docker-push-gatewayservice + - docker-push-questionservice + - docker-push-webapp steps: - name: Deploy over SSH uses: fifsky/ssh-action@master From 6b4ef1e2caef17a42424094a208ec46227472e10 Mon Sep 17 00:00:00 2001 From: Fernando Jose Gonzalez Sierra <90760906+UO277938@users.noreply.github.com> Date: Thu, 4 Apr 2024 09:54:33 +0200 Subject: [PATCH 03/11] Update sonar-project.properties --- sonar-project.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sonar-project.properties b/sonar-project.properties index 20426e1..34d2d1f 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -10,7 +10,7 @@ sonar.host.url=https://sonarcloud.io sonar.language=js sonar.projectName=wiq_es05a -#sonar.coverage.exclusions=**/*.test.js +sonar.coverage.exclusions=**/*.test.js sonar.coverage.exclusions=* sonar.sources=webapp/src/components,userservice/authservice,userservice/userservice,gatewayservice sonar.sourceEncoding=UTF-8 From 2ca7d164c011bf66e236fa856188701f16d0dd26 Mon Sep 17 00:00:00 2001 From: Fernando Jose Gonzalez Sierra <90760906+UO277938@users.noreply.github.com> Date: Thu, 4 Apr 2024 09:55:08 +0200 Subject: [PATCH 04/11] Update sonar-project.properties --- sonar-project.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sonar-project.properties b/sonar-project.properties index 34d2d1f..90d5c49 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -12,7 +12,7 @@ sonar.projectName=wiq_es05a sonar.coverage.exclusions=**/*.test.js sonar.coverage.exclusions=* -sonar.sources=webapp/src/components,userservice/authservice,userservice/userservice,gatewayservice +sonar.sources=webapp/src/components,userservice/authservice,userservice/userservice,gatewayservice, questionservice sonar.sourceEncoding=UTF-8 sonar.exclusions=node_modules/** sonar.javascript.lcov.reportPaths=**/coverage/lcov.info From be0084eaa4d340e8fe383257da3fde626d3c0615 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lara=20Fern=C3=A1ndez=20M=C3=A9ndez?= <91556753+uo276026@users.noreply.github.com> Date: Thu, 4 Apr 2024 09:55:37 +0200 Subject: [PATCH 05/11] Update Juego.js --- webapp/src/components/Pages/Juego.js | 1 - 1 file changed, 1 deletion(-) diff --git a/webapp/src/components/Pages/Juego.js b/webapp/src/components/Pages/Juego.js index 3e1891d..6f35e59 100644 --- a/webapp/src/components/Pages/Juego.js +++ b/webapp/src/components/Pages/Juego.js @@ -44,7 +44,6 @@ const Juego = ({isLogged, username, numPreguntas}) => { //Control de las estadísticas const updateCorrectAnswers = async () => { try { - const username = localStorage.getItem('username'); const response = await axios.get(`${apiEndpoint}/updateCorrectAnswers?username=${username}`); console.log('Respuesta correcta actualizada con éxito:', response.data); // Realizar otras acciones según sea necesario From 0aeca71a1aa0e3bd7767207cbd85344bd75c44b3 Mon Sep 17 00:00:00 2001 From: UO276026 Date: Thu, 4 Apr 2024 09:58:21 +0200 Subject: [PATCH 06/11] cambio --- webapp/src/components/Pages/Estadisticas.js | 1 - webapp/src/components/Pages/Juego.js | 1 - 2 files changed, 2 deletions(-) diff --git a/webapp/src/components/Pages/Estadisticas.js b/webapp/src/components/Pages/Estadisticas.js index 94d7153..d53788b 100644 --- a/webapp/src/components/Pages/Estadisticas.js +++ b/webapp/src/components/Pages/Estadisticas.js @@ -27,7 +27,6 @@ const Estadisticas = ({isLogged, username}) => { async function statsUser(){ try { - //const username = localStorage.getItem('username'); const response = await axios.get(`${apiEndpoint}/getUserData?username=${username}`); const datos = response.data; setCorrectAnswers(datos.correctAnswers); diff --git a/webapp/src/components/Pages/Juego.js b/webapp/src/components/Pages/Juego.js index 058d7ba..729129f 100644 --- a/webapp/src/components/Pages/Juego.js +++ b/webapp/src/components/Pages/Juego.js @@ -44,7 +44,6 @@ const Juego = ({isLogged, username, numPreguntas}) => { //Control de las estadísticas const updateCorrectAnswers = async () => { try { - //const username = localStorage.getItem('username'); const response = await axios.get(`${apiEndpoint}/updateCorrectAnswers?username=${username}`); console.log('Respuesta correcta actualizada con éxito:', response.data); // Realizar otras acciones según sea necesario From bae9b277a0572760adc2fe86c6e55a45fe39fa12 Mon Sep 17 00:00:00 2001 From: fer4github Date: Thu, 4 Apr 2024 09:58:59 +0200 Subject: [PATCH 07/11] test pruebas --- gatewayservice/gateway-service.test.js | 1 + 1 file changed, 1 insertion(+) diff --git a/gatewayservice/gateway-service.test.js b/gatewayservice/gateway-service.test.js index 5e4e0cf..ab864ea 100644 --- a/gatewayservice/gateway-service.test.js +++ b/gatewayservice/gateway-service.test.js @@ -103,4 +103,5 @@ describe('Gateway Service', () => { // Detenemos el proceso de Locust locustProcess.kill(); }); + //test prueba }); \ No newline at end of file From 9e6e15b6588e8bff811f2a52230d758049b5eadf Mon Sep 17 00:00:00 2001 From: fer4github Date: Thu, 4 Apr 2024 10:05:38 +0200 Subject: [PATCH 08/11] test prueba --- debug.log | 1 + gatewayservice/gateway-service.test.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 debug.log diff --git a/debug.log b/debug.log new file mode 100644 index 0000000..0b519a1 --- /dev/null +++ b/debug.log @@ -0,0 +1 @@ +[0404/100424.492:ERROR:registration_protocol_win.cc(107)] CreateFile: El sistema no puede encontrar el archivo especificado. (0x2) diff --git a/gatewayservice/gateway-service.test.js b/gatewayservice/gateway-service.test.js index ab864ea..43480b9 100644 --- a/gatewayservice/gateway-service.test.js +++ b/gatewayservice/gateway-service.test.js @@ -103,5 +103,5 @@ describe('Gateway Service', () => { // Detenemos el proceso de Locust locustProcess.kill(); }); - //test prueba + //test prueba gateway }); \ No newline at end of file From 08cbc244649dc9c25bae70a24397192b0175c970 Mon Sep 17 00:00:00 2001 From: fer4github Date: Thu, 4 Apr 2024 10:23:26 +0200 Subject: [PATCH 09/11] documentacion punto 7 --- debug.log | 1 + docs/images/07_DiagramaDespliegue3.PNG | Bin 0 -> 31763 bytes docs/images/07_diagramaDespliegue2.png | Bin 50070 -> 0 bytes docs/src/07_deployment_view.adoc | 2 +- 4 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 debug.log create mode 100644 docs/images/07_DiagramaDespliegue3.PNG delete mode 100644 docs/images/07_diagramaDespliegue2.png diff --git a/debug.log b/debug.log new file mode 100644 index 0000000..a50ccf6 --- /dev/null +++ b/debug.log @@ -0,0 +1 @@ +[0404/101930.492:ERROR:registration_protocol_win.cc(107)] CreateFile: El sistema no puede encontrar el archivo especificado. (0x2) diff --git a/docs/images/07_DiagramaDespliegue3.PNG b/docs/images/07_DiagramaDespliegue3.PNG new file mode 100644 index 0000000000000000000000000000000000000000..6eae1bc19f32dd3d9da1e717b5b9afc8f1b53a9a GIT binary patch literal 31763 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 literal 0 HcmV?d00001 diff --git a/docs/images/07_diagramaDespliegue2.png b/docs/images/07_diagramaDespliegue2.png deleted file mode 100644 index 5e6b1278e8fa95dafc1b5f24690aed3ed10db6c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50070 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 Date: Thu, 4 Apr 2024 10:30:53 +0200 Subject: [PATCH 10/11] Estadisticas arreglada --- webapp/src/components/Pages/Estadisticas.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/webapp/src/components/Pages/Estadisticas.js b/webapp/src/components/Pages/Estadisticas.js index d53788b..72562a0 100644 --- a/webapp/src/components/Pages/Estadisticas.js +++ b/webapp/src/components/Pages/Estadisticas.js @@ -28,11 +28,13 @@ const Estadisticas = ({isLogged, username}) => { async function statsUser(){ try { const response = await axios.get(`${apiEndpoint}/getUserData?username=${username}`); + console.log('Datos obtenidos con exito:', response.data); + console.log('Datos obtenidos con exito:', response.data.user.correctAnswers); const datos = response.data; - setCorrectAnswers(datos.correctAnswers); - setIncorrectAnswers(datos.incorrectAnswers); - setCompletedGames(datos.completedGames); - setAverageTime(datos.averageTime); + setCorrectAnswers(datos.user.correctAnswers); + setIncorrectAnswers(datos.user.incorrectAnswers); + setCompletedGames(datos.user.completedGames); + setAverageTime(datos.user.averageTime); } catch (error) { setError(error.response.data.error); } From 55caa33b67f01fe1ffc05091eccdc661fa6674c4 Mon Sep 17 00:00:00 2001 From: fer4github Date: Thu, 4 Apr 2024 10:40:15 +0200 Subject: [PATCH 11/11] cambio log debug --- debug.log | 4 ---- 1 file changed, 4 deletions(-) diff --git a/debug.log b/debug.log index 5fd7e77..a50ccf6 100644 --- a/debug.log +++ b/debug.log @@ -1,5 +1 @@ -<<<<<<< HEAD [0404/101930.492:ERROR:registration_protocol_win.cc(107)] CreateFile: El sistema no puede encontrar el archivo especificado. (0x2) -======= -[0404/100424.492:ERROR:registration_protocol_win.cc(107)] CreateFile: El sistema no puede encontrar el archivo especificado. (0x2) ->>>>>>> Fernado-tests