From 97357e24b1ba9ada3498be9c1cfa450d4aa0cc02 Mon Sep 17 00:00:00 2001 From: Baptiste Marcel Date: Mon, 27 Nov 2023 08:10:13 +0100 Subject: [PATCH] ajout de fonction db --- .../src/Components/GraphContainer.tsx | 26 ++++++++++-------- .../src/server/services/DatabaseService.js | 27 +++++++++++++++++++ 2 files changed, 42 insertions(+), 11 deletions(-) diff --git a/cryptide_project/src/Components/GraphContainer.tsx b/cryptide_project/src/Components/GraphContainer.tsx index 4ff3c14..901cf57 100644 --- a/cryptide_project/src/Components/GraphContainer.tsx +++ b/cryptide_project/src/Components/GraphContainer.tsx @@ -12,6 +12,8 @@ import { ColorToHexa } from "../model/EnumExtender"; import Bot from "../model/Bot"; import NodePerson from "../model/Graph/NodePerson"; import { useAuth } from "../Contexts/AuthContext"; +// @ts-ignore +import DatabaseService from "../server/services/DatabaseService"; interface MyGraphComponentProps { @@ -44,8 +46,7 @@ let lastNodes: NodePerson[] = [] const MyGraphComponent: React.FC = ({onNodeClick, handleShowTurnBar, handleTurnBarTextChange, playerTouched, setPlayerTouched, changecptTour, solo, addToHistory, showLast, setNetwork}) => { let cptTour: number = 0 - const {isLoggedIn, user} = useAuth() - console.log('isLoggedIn : ' + isLoggedIn); + const {isLoggedIn, user} = useAuth(); const { indices, indice, person, personNetwork, setNodeIdData, players, askedPersons, setActualPlayerIndexData, room, actualPlayerIndex, turnPlayerIndex, setTurnPlayerIndexData, setWinnerData } = useGame(); const params = new URLSearchParams(window.location.search); @@ -458,20 +459,23 @@ let cptTour: number = 0 setPlayerTouched(-1) setWinnerData(players[winnerIndex]) - console.log('isLoggedIn : ' + isLoggedIn); - if(isLoggedIn){ - if(solo){ - - } - else{ - if(winner.id === currentPlayer.id){ - console.log("Vous avez gagné !"); + try{ + if(isLoggedIn){ + if(solo){ + } else{ - console.log("Vous avez perdu !"); + if(winner.id === currentPlayer.id){ + // TODO: Ajouter une victoire + + } + // TODO: Update les stats } } } + catch(e){ + console.log(e); + } first = true cptHistory = 0 diff --git a/cryptide_project/src/server/services/DatabaseService.js b/cryptide_project/src/server/services/DatabaseService.js index c36ac2e..024a575 100644 --- a/cryptide_project/src/server/services/DatabaseService.js +++ b/cryptide_project/src/server/services/DatabaseService.js @@ -106,6 +106,33 @@ class DatabaseService { }); } + // Mettre à jour les stats solo de l'utilisateur + async updateSoloStats(userId, nbGames, bestScore, avgNbTry){ + return new Promise((resolve, reject) => { + this.client.run('UPDATE solo_stats SET nbGames = ?, bestScore = ?, avgNbTry = ? WHERE idUser = ?', [nbGames, bestScore, avgNbTry, userId], (err, result) => { + if(err){ + reject(err); + } + else{ + resolve(result); + } + }); + }); + } + + // Mettre à jour les stats online de l'utilisateur + async updateOnlineStats(userId, nbGames, nbWins, ratio){ + return new Promise((resolve, reject) => { + this.client.run('UPDATE online_stats SET nbGames = ?, nbWins = ?, ratio = ? WHERE idUser = ?', [nbGames, nbWins, ratio, userId], (err, result) => { + if(err){ + reject(err); + } + else{ + resolve(result); + } + }); + }); + } async initSoloStats(userId) { return new Promise((resolve, reject) => {