diff --git a/Site Web/client/src/components/Configurations/ConfigurationDuProfil.js b/Site Web/client/src/components/Configurations/ConfigurationDuProfil.js index 34d168f1..77c60d19 100644 --- a/Site Web/client/src/components/Configurations/ConfigurationDuProfil.js +++ b/Site Web/client/src/components/Configurations/ConfigurationDuProfil.js @@ -3,7 +3,7 @@ import { useSelector, useDispatch } from 'react-redux'; import PLUS from "../../assets/img/plus.png"; import { NavLink } from "react-router-dom"; import axios from "axios"; -import { uploadPicture } from '../../actions/user.actions'; +import { getUser, uploadPicture } from '../../actions/user.actions'; import { useParams } from 'react-router-dom'; import { UidContext } from '../AppContext'; @@ -16,6 +16,9 @@ const ConfigurationDuProfil = ()=>{ const [tmpAffichageImage, setTmpAffichageImage]=useState(PLUS); const [displayAdd, setDisplayAdd] = useState(false); const [message, setMessage] = useState(''); + const dispatch=useDispatch(); + + const handleLoadFile=(e)=>{ const file=e.target.files[0]; @@ -35,6 +38,21 @@ const ConfigurationDuProfil = ()=>{ console.log(tmpImage); }; + + const handleUpdatePseudo=(e)=>{ + e.preventDefault(); + console.log(userData.pseudo); + axios + .put(`${process.env.REACT_APP_API_URL}api/user/update/`+ userData._id , { pseudo }) + .then(response => { + console.log(response); + }) + .catch(error => { + console.log(error); + }); + dispatch(getUser); + } + const handleTPM =()=> { console.log("test"); console.log(tmpImage); @@ -44,6 +62,7 @@ const ConfigurationDuProfil = ()=>{ const handleUpdate = async (e) => { e.preventDefault(); + try { await axios.patch( `${process.env.REACT_APP_API_URL}api/user/${userData.id}/image`, tmpImage); setMessage("Image de profil mise à jour avec succès!"); @@ -54,26 +73,7 @@ const ConfigurationDuProfil = ()=>{ userPicture(tmpAffichageImage); console.log(userPicture); setDisplayAdd(false); - //const pseudoError = document.querySelector(".pseudo.error"); - /* const pictureError =document.querySelector(".picture.error"); - await axios({ - method: "post", - url: `${process.env.REACT_APP_API_URL}api/user/upload`, - data: { - // pseudo, - userPicture, - - } - , - }) - .then((res) => { - console.log(res); - if (res.data.errors) { - //pseudoError.innerHTML = res.data.errors.pseudo; - pictureError.innerHTML = res.data.errors.picture; - } - }) - .catch((err) => console.log(err));*/ + }; @@ -115,7 +115,7 @@ const ConfigurationDuProfil = ()=>{ - + @@ -138,7 +138,6 @@ const ConfigurationDuProfil = ()=>{
{/*onChange={handleLoadFile} onChange={(e)=> setTmpImage(e.target.files[0].name)} */} diff --git a/Site Web/client/src/pages/Profil.js b/Site Web/client/src/pages/Profil.js index dba5422f..cc9bdde9 100644 --- a/Site Web/client/src/pages/Profil.js +++ b/Site Web/client/src/pages/Profil.js @@ -145,7 +145,7 @@ const Profil = () => {
- +

{userData.pseudo}

diff --git a/Site Web/controllers/user.controller.js b/Site Web/controllers/user.controller.js index 468fd692..f318e843 100644 --- a/Site Web/controllers/user.controller.js +++ b/Site Web/controllers/user.controller.js @@ -1,6 +1,6 @@ const UserModel = require("../models/user.model"); const ObjectID = require("mongoose").Types.ObjectId; - +const bcrypt = require('bcrypt'); //-password pour ne pas donner le password module.exports.getAllUsers = async (req, res) => { @@ -46,25 +46,39 @@ module.exports.updateUser = async (req, res) => { return res.status(500).json({ message: err }); } }; +module.exports.compteUpdatePseudo= async (req,res)=>{ + + try { + + console.log("test Change Pseudo"); + const updatedUser = await UserModel.findByIdAndUpdate( + { _id: req.params.id }, + { + $set: { + pseudo: req.body.pseudo, + } + }, + { runValidators: true, new: true} + ); + res.status(200).json({ message: "User updated successfully", data: updatedUser }); + } catch (err) { + return res.status(500).json({ message: err }); + } + +} -module.exports.compteUpdatePseudo = async (req, res) => { +module.exports.compteUpdateEmail= async (req, res) => { try { - console.log("test1"); - console.log(req.body.email); - console.log(req.body.password); - console.log(req.params.id); - /*if (!UserModel.isValid(req.params.id)) { - return res.status(400).send("ID unknown : " + req.params.id); - } - */ - console.log("test"); + + console.log("test Change mail"); + const salt = await bcrypt.genSalt(); const updatedUser = await UserModel.findByIdAndUpdate( { _id: req.params.id }, { $set: { email: req.body.email, - password: req.body.password, + password: password = await bcrypt.hash(req.body.password, salt), } }, { runValidators: true, new: true} diff --git a/Site Web/routes/user.routes.js b/Site Web/routes/user.routes.js index fabdb7e3..500e5265 100644 --- a/Site Web/routes/user.routes.js +++ b/Site Web/routes/user.routes.js @@ -25,6 +25,7 @@ router.patch('/notif/:id', userController.getNotif); router.patch('/:id/image', userController.saveImage); router.get('/:id/image',userController.getImage); router.put('/update/:id',userController.compteUpdatePseudo); +router.put('/update/:id',userController.compteUpdatePseudo); //upload pb avec postman //router.post("/upload", upload.single('file'), uploadController.uploadProfil);