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,7 +510,8 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
catch(e){ catch(e){
console.log(e); console.log(e);
} }
finally{
console.log("JE SUIS PASSE PAR LA");
first = true first = true
cptHistory = 0 cptHistory = 0
askedWrong=false askedWrong=false
@ -548,6 +533,7 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
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