diff --git a/routes/Dpanel/API/ProfilPicture.js b/routes/Dpanel/API/ProfilPicture.js new file mode 100644 index 0000000..75b152c --- /dev/null +++ b/routes/Dpanel/API/ProfilPicture.js @@ -0,0 +1,46 @@ +const express = require('express'); +const fs = require('fs'); +const path = require('path'); +const router = express.Router(); + +router.use(express.json()); + +router.post('/', (req, res) => { + const userId = req.body.userId; + const profilePictureUrl = req.body.profilePictureUrl; + + if (!profilePictureUrl) { + return res.status(400).send('No profile picture URL provided.'); + } + + updateUserProfilePicture(userId, profilePictureUrl, res); +}); + +const updateUserProfilePicture = (userId, profilePictureUrl, res) => { + const userFilePath = path.join(__dirname, '../../../data', 'user.json'); + + fs.readFile(userFilePath, 'utf8', (err, data) => { + if (err) { + return res.status(500).send('Error reading the file'); + } + + let users = JSON.parse(data); + + const userIndex = users.findIndex(u => u.id === userId); + + if (userIndex !== -1) { + users[userIndex].profilePicture = profilePictureUrl; + + fs.writeFile(userFilePath, JSON.stringify(users, null, 2), err => { + if (err) { + return res.status(500).send('Error writing to the file'); + } + res.json({ profilePicture: profilePictureUrl }); + }); + } else { + res.status(404).send('User not found'); + } + }); +}; + +module.exports = router; diff --git a/routes/Dpanel/Dashboard/ProfilUser.js b/routes/Dpanel/Dashboard/ProfilUser.js new file mode 100644 index 0000000..8866b0f --- /dev/null +++ b/routes/Dpanel/Dashboard/ProfilUser.js @@ -0,0 +1,33 @@ +const express = require('express'); +const fs = require('fs'); +const path = require('path'); +const router = express.Router(); +const authMiddleware = require('../../../Middlewares/authMiddleware'); + +router.use(express.json()); + +router.get('/', authMiddleware, (req, res) => { + if (!req.user || !req.user.id) { + return res.status(401).send('Unauthorized'); + } + + const userId = req.user.id; + + fs.readFile(path.join(__dirname, '../../../data', 'user.json'), 'utf8', (err, data) => { + if (err) { + return res.status(500).send('Internal Server Error'); + } + + const users = JSON.parse(data); + + const user = users.find(u => u.id === userId); + + if (!user) { + return res.status(404).send('User not found'); + } + + res.render('profile', { user }); + }); +}); + +module.exports = router; diff --git a/views/profile.ejs b/views/profile.ejs new file mode 100644 index 0000000..272c835 --- /dev/null +++ b/views/profile.ejs @@ -0,0 +1,180 @@ + + + + + + Profil Utilisateur + + + +
+
+
+

Bienvenue, <%= user.name %> !

+ +
+

ID : <%= user.id %>

+

Rôle : <%= user.role %>

+
+ +
+
+ + +
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
+ + + +