Update et persistance des stats solo

pull/83/head
Baptiste MARCEL 1 year ago
parent 40bea62d65
commit 831687c035

@ -12,9 +12,6 @@ import { ColorToHexa } from "../model/EnumExtender";
import Bot from "../model/Bot"; import Bot from "../model/Bot";
import NodePerson from "../model/Graph/NodePerson"; import NodePerson from "../model/Graph/NodePerson";
import { useAuth } from "../Contexts/AuthContext"; import { useAuth } from "../Contexts/AuthContext";
// @ts-ignore
import DatabaseService from "../server/services/DatabaseService";
interface MyGraphComponentProps { interface MyGraphComponentProps {
onNodeClick: (shouldShowChoiceBar: boolean) => void; onNodeClick: (shouldShowChoiceBar: boolean) => void;
@ -477,6 +474,7 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
}) })
socket.on("end game", (winnerIndex) =>{ socket.on("end game", (winnerIndex) =>{
console.log("JE SUIS PASSE PAR LA");
if (cptEndgame % 2 == 0){ if (cptEndgame % 2 == 0){
cptEndgame++; cptEndgame++;
const currentPlayer = players[actualPlayerIndex]; const currentPlayer = players[actualPlayerIndex];
@ -490,21 +488,7 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
try{ try{
if(isLoggedIn){ if(isLoggedIn){
if(solo){ if(!solo){
if(user && user.soloStats){
user.soloStats.nbGames = null ? user.soloStats.nbGames = 1 : user.soloStats.nbGames += 1;
if(cptTour < user.soloStats.bestScore || user.soloStats.bestScore == null){
user.soloStats.bestScore = cptTour;
}
user.soloStats.avgNbTry = (user.soloStats.avgNbTry * (user.soloStats.nbGames - 1) + cptTour) / user.soloStats.nbGames;
manager.userService.updateSoloStats(user.pseudo, user.soloStats.nbGames, user.soloStats.bestScore, user.soloStats.avgNbTry);
}
else{
console.error("User not found");
}
}
else{
if(user && user.onlineStats){ if(user && user.onlineStats){
// console.log("nbGames: " + user.onlineStats.nbGames + " nbWins: " + user.onlineStats.nbWins); // console.log("nbGames: " + user.onlineStats.nbGames + " nbWins: " + user.onlineStats.nbWins);
if(winner.id === currentPlayer.id){ if(winner.id === currentPlayer.id){
@ -526,27 +510,29 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
catch(e){ catch(e){
console.log(e); console.log(e);
} }
finally{
first = true console.log("JE SUIS PASSE PAR LA");
cptHistory = 0 first = true
askedWrong=false cptHistory = 0
askedWrongBot=false askedWrong=false
askedWrongBot=false
socket.off("end game")
socket.off("asked all") socket.off("end game")
socket.off("opacity activated") socket.off("asked all")
socket.off("opacity deactivated") socket.off("opacity activated")
socket.off("reset graph") socket.off("opacity deactivated")
socket.off("node checked") socket.off("reset graph")
socket.off("already asked") socket.off("node checked")
socket.off("asked wrong") socket.off("already asked")
socket.off("asked") socket.off("asked wrong")
socket.off("put correct background") socket.off("asked")
socket.off("put grey background") socket.off("put correct background")
socket.off("put imossible grey") socket.off("put grey background")
socket.off("put imossible grey")
navigate("/endgame")
navigate("/endgame")
}
} }
}) })
@ -707,6 +693,22 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
cptTour ++; cptTour ++;
setNbCoupData(cptTour) setNbCoupData(cptTour)
try{
if(user && user.soloStats){
user.soloStats.nbGames = null ? user.soloStats.nbGames = 1 : user.soloStats.nbGames += 1;
if(cptTour < user.soloStats.bestScore || user.soloStats.bestScore == 0 || user.soloStats.bestScore == null){
user.soloStats.bestScore = cptTour;
}
user.soloStats.avgNbTry = (user.soloStats.avgNbTry * (user.soloStats.nbGames - 1) + cptTour) / user.soloStats.nbGames;
manager.userService.updateSoloStats(user.pseudo, user.soloStats.nbGames, user.soloStats.bestScore, user.soloStats.avgNbTry);
}
}
catch(error){
console.log(error);
}
navigate("/endgame?solo=true&daily=" + isDaily) navigate("/endgame?solo=true&daily=" + isDaily)
} }

@ -61,7 +61,7 @@ class DbUserService implements IUserService{
try { try {
const result = await SessionService.updateOnlineStats(pseudo, nbGames, bestScore, ratio); const result = await SessionService.updateOnlineStats(pseudo, nbGames, bestScore, ratio);
if (result) { if (result) {
console.log(); console.log("Stats online updated");
} else { } else {
console.log("Stats online not updated"); console.log("Stats online not updated");
} }

@ -30,7 +30,6 @@ class SessionController {
static async updateSoloStats(req, res) { static async updateSoloStats(req, res) {
const db = new DatabaseService(); const db = new DatabaseService();
try{ try{
await db.connect(); await db.connect();
@ -48,7 +47,7 @@ class SessionController {
return; return;
} }
await db.updateSoloStatsByUserId(user.idUser, req.body.nbGames, req.body.bestScore, req.body.avgNbTry); await db.updateSoloStats(user.idUser, req.body.nbGames, req.body.bestScore, req.body.avgNbTry);
const newSoloStats = await db.getSoloStatsByUserId(user.idUser); const newSoloStats = await db.getSoloStatsByUserId(user.idUser);

@ -23,6 +23,7 @@ class SessionService {
} }
static async updateSoloStats(pseudo: string, nbGames: number, bestScore: number, avgNbTry: number){ static async updateSoloStats(pseudo: string, nbGames: number, bestScore: number, avgNbTry: number){
console.log("updateSoloStats : ", pseudo, nbGames, bestScore, avgNbTry);
try { try {
const response = await fetch('http://localhost:3003/session/updateSoloStats', { const response = await fetch('http://localhost:3003/session/updateSoloStats', {
method: 'PUT', method: 'PUT',

Loading…
Cancel
Save