diff --git a/back/index.js b/back/index.js index b51f99fe113090c81c75a9323f21c33934da8c80..1c5b2f6a4239d6ebcb273a0472819cd1afa0cbd5 100644 --- a/back/index.js +++ b/back/index.js @@ -19,10 +19,18 @@ app.listen(process.env.REACT_APP_SERVER_PORT, () => { console.log(`App server now listening on port ${process.env.REACT_APP_SERVER_PORT}`); }); -app.get('/test', (req, res) => { - const { table } = 'Equipe'; +app.get('/classement_par_equipes', (req, res) => { + pool.query(`SELECT Equipe.name,SUM(score) AS score,COUNT(participantId) AS nbParticipant,COUNT(score) AS nbScores FROM Score JOIN Equipe ON Equipe.id=Score.equipeId GROUP BY equipeId;`, (err, results) => { + if (err) { + return res.send(err); + } else { + return res.send(results); + } + }); +}); - pool.query(`select * from ${table}`, (err, results) => { +app.get('/classement_individuel', (req, res) => { + pool.query(`SELECT Participant.name,SUM(score) AS score,COUNT(equipeId) AS nbEquipes,COUNT(score) AS nbScores FROM Score JOIN Participant ON Participant.id=Score.participantId GROUP BY participantId;`, (err, results) => { if (err) { return res.send(err); } else { diff --git a/front/src/app/accueil/Accueil.js b/front/src/app/accueil/Accueil.js index 6343d9fc5768fc2fe2a486b6196150f3590d502b..8840a6f65683dfc2930e564b3b47b5d554a7f5fd 100644 --- a/front/src/app/accueil/Accueil.js +++ b/front/src/app/accueil/Accueil.js @@ -1,16 +1,8 @@ import React from 'react'; //import { Link } from 'react-router-dom'; -import axios from 'axios'; - -function callServer() { - axios.get('http://localhost:8000/test').then((response) => { - console.log(response.data); - }); -} export default () => ( <div> Accueil - {callServer()} </div> ); diff --git a/front/src/app/classementEquipe/ClassementEquipe.js b/front/src/app/classementEquipe/ClassementEquipe.js index 5bb99d3fff7e29fe0437a6bd055097213abf7bb7..fdbd5bdb5ee76bb047bd1d6865d477dc97461f00 100644 --- a/front/src/app/classementEquipe/ClassementEquipe.js +++ b/front/src/app/classementEquipe/ClassementEquipe.js @@ -1,6 +1,10 @@ import React from 'react'; //import { Link } from 'react-router-dom'; +import { TableauClassementEquipes } from './TableauClassementEquipes'; export default () => ( - <div>Classement par équipe</div> + <div> + <h1>Classement par équipe</h1> + <TableauClassementEquipes/> + </div> ); diff --git a/front/src/app/classementEquipe/TableauClassementEquipes.js b/front/src/app/classementEquipe/TableauClassementEquipes.js new file mode 100644 index 0000000000000000000000000000000000000000..ca8f6a496fe1fdeebd94854789d9875e4c735cbe --- /dev/null +++ b/front/src/app/classementEquipe/TableauClassementEquipes.js @@ -0,0 +1,30 @@ +import React, { useState } from 'react'; +import axios from 'axios'; + + +export function TableauClassementEquipes(){ + var [equipes,setEquipes] = useState([]); + axios.get('http://localhost:8000/classement_par_equipes').then((response) => setEquipes(response.data)) + return( + <table class="table"> + <thead class="thead-light"> + <tr> + <th scope="col">Equipe</th> + <th scope="col">Score total</th> + <th scope="col">Nombre de participants</th> + <th scope="col">Nombre de scores saisis</th> + </tr> + </thead> + <tbody> + {equipes.map((item) => + <tr> + <th scope="row">{item.name}</th> + <td>{item.score}</td> + <td>{item.nbParticipant}</td> + <td>{item.nbScores}</td> + </tr> + )} + </tbody> + </table> + ) +}; diff --git a/front/src/app/classementIndividuel/ClassementIndividuel.js b/front/src/app/classementIndividuel/ClassementIndividuel.js index 8b8fc68210d6367bccedb2fc3ce0b5a9b3719cfa..a8f5655780aebf5a8583fe4f70beabbbf250d9fd 100644 --- a/front/src/app/classementIndividuel/ClassementIndividuel.js +++ b/front/src/app/classementIndividuel/ClassementIndividuel.js @@ -1,6 +1,10 @@ import React from 'react'; //import { Link } from 'react-router-dom'; +import { TableauClassementIndividuel } from './TableauClassementIndividuel'; export default () => ( - <div>Classement individuel</div> + <div> + <h1>Classement individuel</h1> + <TableauClassementIndividuel/> + </div> ); diff --git a/front/src/app/classementIndividuel/TableauClassementIndividuel.js b/front/src/app/classementIndividuel/TableauClassementIndividuel.js new file mode 100644 index 0000000000000000000000000000000000000000..14f7898e4e21e987653e11f532ed5438baa3edd8 --- /dev/null +++ b/front/src/app/classementIndividuel/TableauClassementIndividuel.js @@ -0,0 +1,30 @@ +import React, { useState } from 'react'; +import axios from 'axios'; + + +export function TableauClassementIndividuel(){ + var [equipes,setEquipes] = useState([]); + axios.get('http://localhost:8000/classement_individuel').then((response) => setEquipes(response.data)) + return( + <table class="table"> + <thead class="thead-light"> + <tr> + <th scope="col">Equipe</th> + <th scope="col">Score total</th> + <th scope="col">Nombre équipes</th> + <th scope="col">Nombre de scores saisis</th> + </tr> + </thead> + <tbody> + {equipes.map((item) => + <tr> + <th scope="row">{item.name}</th> + <td>{item.score}</td> + <td>{item.nbEquipes}</td> + <td>{item.nbScores}</td> + </tr> + )} + </tbody> + </table> + ) +}; diff --git a/front/src/index.js b/front/src/index.js index e29815ee45978dd21bfebd9e716a26933e885e4d..d7e3bbfd76d2efc26e80a1df9a7ff42f4bff5811 100644 --- a/front/src/index.js +++ b/front/src/index.js @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useState } from 'react'; import ReactDOM from 'react-dom'; import { BrowserRouter as Router, Route } from 'react-router-dom'; import Navbar from './app/navbar/Navbar';