From b2de538e42325faa46c50b2359f4984cf6550644 Mon Sep 17 00:00:00 2001 From: Pierre Ferreira Date: Tue, 28 Nov 2023 08:06:48 +0100 Subject: [PATCH] ajout de la logique pour la modification du pseudo en bdd (non finis) :construction: --- cryptide_project/src/Pages/Profile.tsx | 4 ++- .../server/controllers/SessionController.js | 29 ++++++++++++++++ cryptide_project/src/server/db/socialgraph.db | Bin 28672 -> 28672 bytes .../src/server/routes/AuthRoutes.js | 1 + .../src/server/services/DatabaseService.js | 13 +++++++ .../src/services/SessionService.tsx | 32 ++++++++++++++++-- 6 files changed, 75 insertions(+), 4 deletions(-) diff --git a/cryptide_project/src/Pages/Profile.tsx b/cryptide_project/src/Pages/Profile.tsx index f8e2be4..e0efd2e 100644 --- a/cryptide_project/src/Pages/Profile.tsx +++ b/cryptide_project/src/Pages/Profile.tsx @@ -7,6 +7,7 @@ import { delay, update } from 'lodash'; import { socket } from '../SocketConfig'; import AuthService from '../services/AuthService'; + /* Style */ import './Profile.css' import Edit from "../res/icon/edit-pen.png" @@ -45,7 +46,8 @@ const Profile = () => { const onUsernameChange = (newUsername) => { console.log("nouveau pseudo : " + newUsername) if(user?.pseudo != null){ - user.pseudo = newUsername; + SessionService.UpdatePseudo(user.pseudo, newUsername) + //user.pseudo = newUsername; } } diff --git a/cryptide_project/src/server/controllers/SessionController.js b/cryptide_project/src/server/controllers/SessionController.js index 3c5350e..f536a0b 100644 --- a/cryptide_project/src/server/controllers/SessionController.js +++ b/cryptide_project/src/server/controllers/SessionController.js @@ -27,6 +27,35 @@ class SessionController { await db.disconnect(); } } + + static async UpdatePseudo(req, res){ + const db = new DatabaseService(); + + try{ + await db.connect(); + + const user = db.getUserByPseudo(req.body.pseudo); + if (!user) { + res.status(200).json({ error: "true", message: 'User not found' }); + return; + } + + await db.updatePseudo(user.idUser, req.body.newPseudo); //* update + + const updatedUser = db.getUserByPseudo(req.body.newPseudo); + + req.session.user.pseudo = updatedUser.pseudo; + + 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 du pseudo de l\'utilisateur.' }); + } + finally{ + await db.disconnect(); + } + } } module.exports = SessionController; \ No newline at end of file diff --git a/cryptide_project/src/server/db/socialgraph.db b/cryptide_project/src/server/db/socialgraph.db index be47d2d917e58df77a22cb4120214fa4032fdfb9..35ebe49d2121dd6b5c4e90ccabb745538c69c9d5 100644 GIT binary patch delta 616 zcmZp8z}WDBae_2s_(U0J#_){^OZcU@xeqY#FW`6NyTzBo$IZKj*MsLVPYaJ6_kqod z0*kooV}v;wcm*3-jTsqB3sj7fR16JN{F9t=3tUr8y~8pb!%K|=oxJ_@^!5Bp1H3}@ z^vr`Ik}}IYvePTllHK$(%Y2P897EC~f{hG}jCBnSb&bpw3{90g{z zXqxQnnCYHuQDhtvnuuzRk)f5T86V%~7MTWSDQ^B+2L2QL@A+H!XY+64|IUA(e;@x! z{>l8cn-vw}`Ni0n1%ZAP=3`c5L^wuh@?`x&DQ;dZ27W8vb^QDIjQDGKwfKJUmGEuj z{lJ?8)XKwK@5s`~%1BA*2qT*S_BkmYX9f9OX!AN-H6cd+$yfd5wfH$1nZ+4Pi&Kk= zg?Skm7`XZ8G5~%2j{hnD9sbMwr}z)@@8Dn0zl?wGW#HUiJ_ti- O^7{BtV33iaEf4@8!L73Z delta 388 zcmZp8z}WDBae_3X|3n#QM*ocoOZX)?d0H6w7w|js-QvsP%sGwr-estv!Vho zPjnowU?ZzBBV%cSicyk^p@B-dMY*w8Ns^Cqg-dotfL@MYxu<7UX+*GLZg5pfetw{3 zfMt%iXL+fIQ@W>7mT6Q*NK|3Ck%5u1uA!l>k-37Qsgcpd zC-~p<&*tC8|DFFn|33be{FC{6HVZlw^Ruv*76?wBtY0X>$-9n$-->q~|2{q={u;g? zd?kF_ct7yw09_f(YwyHJiR%P6ud`JXV&t8C)n8tNmy?lMoUybxwWwH-mw|zSlYcz} u&|UBNpYq?~zs!G%{~-Sk{`LIJfbQ$%XXE7H;9wM-ygoh@=n { + this.client.run('UPDATE users SET pseudo = ? WHERE idUser = ?', newPseudo, userId, (err, result) => { + if(err){ + reject(err); + } + else{ + resolve(result); + } + }); + }); + } } module.exports = DatabaseService; \ No newline at end of file diff --git a/cryptide_project/src/services/SessionService.tsx b/cryptide_project/src/services/SessionService.tsx index 46340ab..49cf8e9 100644 --- a/cryptide_project/src/services/SessionService.tsx +++ b/cryptide_project/src/services/SessionService.tsx @@ -23,7 +23,33 @@ class SessionService { throw error; } } + + static async UpdatePseudo(pseudo : string, newPseudo : string) { + try { + const response = await fetch(ADRESSE_DBSERVER + '/session/updatePseudo', { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + pseudo, + newPseudo + }), + credentials: 'include', + }); + + 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; + } + } } - - export default SessionService; - \ No newline at end of file + +export default SessionService;