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;