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

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

@ -30,7 +30,6 @@ class SessionController {
static async updateSoloStats(req, res) {
const db = new DatabaseService();
try{
await db.connect();
@ -48,7 +47,7 @@ class SessionController {
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);

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

Loading…
Cancel
Save