enigme intermédiaire dans bdd'
continuous-integration/drone/push Build is passing Details

CI/CD
Thomas Chazot 7 months ago
parent 350fcbf0b0
commit 688634ac8b

@ -180,7 +180,30 @@ class SessionController {
}
}
// static async addMediumEnigmaStats(req, res)
static async addMediumEnigmaStats(req, res){
const db = new DatabaseService();
try{
await db.connect();
const user = await db.getUserByPseudo(req.body.pseudo);
if (!user) {
res.status(200).json({ error: "true", message: 'User not found' });
return;
}
await db.addMediumEnigmaStats(user.idUser, ENIGME_MOYEN, req.body.score, req.body.time);
res.status(200).json({ user: req.session.user }); //verif rep
}
catch(error){
console.error(error);
res.status(500).json({ error: 'Erreur lors de la modification des stats de l\'énigme moyenne de l\'utilisateur.' });
}
finally{
await db.disconnect();
}
}
static async addHardEnigmaStats(req, res){
const db = new DatabaseService();

@ -20,7 +20,7 @@ router.get('/auth/games', AuthController.getGames)
router.get('/session', SessionController.getUserInformation);
router.post('/session/addMastermindStats', SessionController.addMastermindStats);
router.post('/session/addEasyEnigmaStats', SessionController.addEasyEnigmaStats);
// router.post('/session/addMediumEnigmaStats', SessionController.addMediumEnigmaStats);
router.post('/session/addMediumEnigmaStats', SessionController.addMediumEnigmaStats);
router.post('/session/addHardEnigmaStats', SessionController.addHardEnigmaStats);
router.post('/session/addOnlineStats', SessionController.addOnlineStats);
router.put('/session/updatePseudo', SessionController.UpdatePseudo);

@ -429,7 +429,14 @@ class DatabaseService {
}
}
// async addMediumEnigmaStats(userId, enigmaLevel, score)
async addMediumEnigmaStats(userId, enigmaLevel, score, time){
try {
const [rows] = await this.client.promise().query('INSERT INTO games (idUser, gameType, win, score, time) VALUES (?, ?, ?, ?, ?)', [userId, enigmaLevel, 1, score, time])
return rows;
} catch (err) {
throw new Error(`Error fetching users: ${err.message}`);
}
}
async addHardEnigmaStats(userId, enigmaLevel, win, time){
try {

@ -1121,18 +1121,14 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
setNbCoupData(cptTour)
try{
console.log("time: " + testTemps)
console.log("avant les stats ligne 1152")
if(user && isLoggedIn && !downloaded){
console.log("passe dans les stats ligne 1154")
if(solo){
if(isDaily){
// TODO: verif difficulté et add les stats
// TODO: verif pour facile et difficile, si réussi en one shot ou non
if(difficulty==="easy"){
manager.userService.addEasyEnigmaStats(user.pseudo, 1, testTemps - 0.5);
}
else if (difficulty === "intermediate"){
manager.userService.addMediumEnigmaStats(user.pseudo, 1, testTemps - 0.5);
}
else{
manager.userService.addHardEnigmaStats(user.pseudo, 1, testTemps - 0.5);
@ -1148,9 +1144,7 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
}
else{
// add stats mastermind
console.log("avant les stats ligne 1178")
if(user && user.mastermindStats && !downloaded){
console.log("passe dans les stats ligne 1180")
manager.userService.addMastermindStats(user.pseudo, cptTour, elapsedTime);
}
}
@ -1177,9 +1171,13 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
changecptTour(cptTour); // On le transmet a la page précédente avec la fonction
}
else{
navigate(`${basePath}/endgame?solo=true&daily=true`)
setNetworkDataData(networkData)
setWinnerData(null)
if (user) {
manager.userService.addHardEnigmaStats(user.pseudo, 0, testTemps - 0.5);
}
navigate(`${basePath}/endgame?solo=true&daily=true`)
}
}
else{

@ -110,18 +110,18 @@ class DbUserService implements IUserService{
}
}
// async addMediumEnigmaStats(pseudo: string, win: number, time: number): Promise<void> {
// try {
// const result = await SessionService.addMediumEnigmaStats(pseudo, win, time);
// if (result) {
// console.log("Stats medium updated");
// } else {
// console.log("Stats medium not updated");
// }
// } catch (error) {
// console.error(error);
// }
// }
async addMediumEnigmaStats(pseudo: string, score: number, time: number): Promise<void> {
try {
const result = await SessionService.addMediumEnigmaStats(pseudo, score, time);
if (result) {
console.log("Stats medium updated");
} else {
console.log("Stats medium not updated");
}
} catch (error) {
console.error(error);
}
}
async addHardEnigmaStats(pseudo: string, win: number, time: number): Promise<void> {
try {

@ -4,7 +4,7 @@ interface IUserService{
fetchUserInformation(): Promise<[User | null, boolean]>
addMastermindStats(pseudo: string, score: number, time: number): Promise<void>
addEasyEnigmaStats(pseudo: string, win: number, time: number): Promise<void>
// addMediumEnigmaStats(pseudo: string, win: number, time: number): Promise<void>
addMediumEnigmaStats(pseudo: string, score: number, time: number): Promise<void>
addHardEnigmaStats(pseudo: string, win: number, time: number): Promise<void>
addOnlineStats(pseudo: string, win: number, time: number): Promise<void>
}

@ -80,7 +80,33 @@ class SessionService {
}
}
// static async addMediumEnigmaStats(pseudo: string, win: number, time: number)
static async addMediumEnigmaStats(pseudo: string, score: number, time: number){
try {
const response = await fetch(ADRESSE_DBSERVER + '/session/addMediumEnigmaStats', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
credentials: 'include',
body: JSON.stringify({
pseudo,
score,
time
}),
});
if (response.ok) {
const result = await response.json();
return result;
} else {
const errorResponse = await response.json();
throw new Error(errorResponse.error);
}
} catch (error) {
console.error(error);
throw error;
}
}
static async addHardEnigmaStats(pseudo: string, win: number, time: number){
try {

Loading…
Cancel
Save