avancement changment email et mdp PB mdp non hash

master
Darius BERTRAND 2 years ago
parent 78340277f2
commit 4b2ef0962f

@ -1,16 +1,31 @@
import { NavLink } from "react-router-dom";
import React, { useState } from 'react';
import React, { useState,useContext } from 'react';
import { useSelector } from 'react-redux';
/*import PolitiqueDeConfidentialite from '../components/';
*/
import axios from "axios";
const ConfigurationDuCompte =()=>{
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const ConfigurationDuCompte =()=>{
const userData = useSelector((state) => state.user.user);
const [email, setEmail] = useState(userData.email);
const [password, setPassword] = useState(userData.password);
const [controlPassword, setControlPassword] = useState('');
const handleUpdate=(e)=>{
e.preventDefault();
console.log(userData._id);
axios
.put(`${process.env.REACT_APP_API_URL}api/user/update/`+ userData._id , { email, password })
.then(response => {
console.log(response);
})
.catch(error => {
console.log(error);
});
}
return(
<div>
@ -47,7 +62,7 @@ const ConfigurationDuCompte =()=>{
value={controlPassword}/>
<div className='password error'></div>
</div>
<button className='buttonValidationChangements'>Valider</button>
<button className='buttonValidationChangements' onClick={handleUpdate}>Valider</button>
</div>
</form>
<div />

@ -1,26 +1,23 @@
import React, { useState } from 'react';
import React, { useState, useEffect,useContext} from 'react';
import { useSelector, useDispatch } from 'react-redux';
import PP from "../../assets/img/unknown.png";
import PLUS from "../../assets/img/plus.png";
import { NavLink } from "react-router-dom";
import axios from "axios";
import { uploadPicture } from '../../actions/user.actions';
import { useParams } from 'react-router-dom';
import { UidContext } from '../AppContext';
const ConfigurationDuProfil = ()=>{
const userData = useSelector((state) => state.user.user);
const [pseudo, setPseudo] = useState(userData.pseudo);
const[userPicture, setUserPicture] = useState(userData.picture);
const [tmpImage, setTmpImage] =useState(PLUS);
const[userPicture, setUserPicture] = useState(null);
const [tmpImage, setTmpImage] =useState(null);
const [tmpAffichageImage, setTmpAffichageImage]=useState(PLUS)
const [displayAdd, setDisplayAdd] = useState(false);
const dispatch = useDispatch();
const uid = useContext(UidContext);
const [message, setMessage] = useState('');
const handleValidationPopup =(e)=>{
setUserPicture(tmpImage);
setDisplayAdd(false);
}
const handleLoadFile=(e)=>{
const file=e.target.files[0];
const reader = new FileReader();
@ -29,25 +26,49 @@ const ConfigurationDuProfil = ()=>{
setTmpImage({
data: reader.result,
contentType: file.type,
});
console.log("eeee");
};
console.log("rrrrrr");
setTmpAffichageImage(`${tmpImage.data}`)
console.log("uuuuuuuuuuuu");
};
useEffect(() => {
const fetchImage = async () => {
try {
const { data } = await axios.get(`/api/users/${uid}/image`);
setUserPicture(`data:${data.contentType};base64,${data.data}`);
} catch (err) {
console.error(err);
}
};
fetchImage();
}, [uid]);
const handleTPM =()=> {
console.log("test");
console.log(tmpImage);
console.log("test8888");
console.log(userPicture);
}
const handleUpdate = async (e) => {
console.log(userPicture)
e.preventDefault();
const data = new FormData();
data.append("pseudo", pseudo);
data.append("userId", userData._id);
data.append("file",userPicture);
dispatch(uploadPicture(data,userData._id));
e.preventDefault();
try {
await axios.patch( `${process.env.REACT_APP_API_URL}api/user/${uid}/image`, tmpImage);
setMessage("Image de profil mise à jour avec succès!");
} catch (err) {
setMessage("Erreur lors de la mise à jour de l'image de profil");
}
userPicture(tmpAffichageImage);
console.log(userPicture);
setDisplayAdd(false);
//const pseudoError = document.querySelector(".pseudo.error");
/* const pictureError =document.querySelector(".picture.error");
await axios({
@ -136,12 +157,12 @@ const ConfigurationDuProfil = ()=>{
<span>Changer</span>
</label>
<input type="file" id="file" name='file' accept=".jpg, .jpeg, .png" onChange={handleLoadFile}/> {/*onChange={handleLoadFile} onChange={(e)=> setTmpImage(e.target.files[0].name)} */}
<img src={tmpImage} className="imageDeProfil"id="output" />
<img src={tmpAffichageImage} className="imageDeProfil"id="output" />
</div>
</div >
<div className='buttonPopup'>
<button onClick={()=>setDisplayAdd(false)}>Retour</button>
<button onClick={handleTPM()} >Valider</button>
<button onClick={handleUpdate} >Valider</button>
</div>
</div>
@ -152,18 +173,6 @@ const ConfigurationDuProfil = ()=>{
)
}
export default ConfigurationDuProfil;

@ -14,6 +14,10 @@ const NouveauDisplayPosts = () => {
dispatch(getPosts());
},[dispatch])
if (!postsData) {
return <p>Loading...</p>;
}
return (
<div>
<ul>

@ -1,45 +0,0 @@
import React, { useEffect, useState } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import { getPosts } from '../../actions/post.actions';
import { isEmpty } from "../Utils";
import Post from './PostNouvelleAffichage';
const NouveauDisplayPosts = () => {
const [loadPost, setLoadPost] = useState(true);
const [count , setCount] = useState(5);
const dispatch = useDispatch();
const postsData = useSelector((state) => state.post.post);
const loadMore = () => {
if (window.innerHeight + document.documentElement.scrollTop + 1 > document.scrollingElement.scrollHeight){
setLoadPost(true);
}
}
useEffect(() => {
if (loadPost) {
dispatch(getPosts(count));
setLoadPost(false);
setCount(count + 5);
}
window.addEventListener('scroll', loadMore);
return () => window.removeEventListener('scroll',loadMore);
}, [loadPost,dispatch,count])
if (!loadPost) {
return <p>Loading...</p>;
}
return (
<div>
<ul>
{!isEmpty(postsData[0]) &&
postsData.map((post) => {
return <Post post={post} key={post._id}/>
})}
</ul>
</div>
);
};
export default NouveauDisplayPosts;

@ -5,7 +5,7 @@ import FollowHandler from '../UserProfil/FollowHandler';
import { dateParser, isEmpty } from '../Utils';
import ButtonLike from './ButtonLike';
import Comment from './Comment';
import Commentaire from '../../assets/img/commentaire.png';
const LinkPreview = ({ link }) => {
const [preview, setPreview] = useState({ image: '', title: '' });
@ -70,7 +70,7 @@ const PostNouvelleAffichage = ( { post } ) => {
<div>{post.likers.length}</div>
</div>
<div id="commentaire">
<img src="commentaire.png" onClick={() => setComments(!comments)}/>
<img src={Commentaire} onClick={() => setComments(!comments)}/>
<div >{post.comments.length}</div>
</div>
</div>

@ -1,5 +1,6 @@
const UserModel = require("../models/user.model");
const ObjectID = require("mongoose").Types.ObjectId;
/*const Image = mongoose.model('Image', ImageSchema);*/
//-password pour ne pas donner le password
module.exports.getAllUsers = async (req, res) => {
@ -16,11 +17,9 @@ module.exports.getNotif = async (req, res) => {
module.exports.userInfo = (req, res) => {
if (!ObjectID.isValid(req.params.id))
return res.status(400).send("ID unknown : " + req.params.id);
console.log('userinfo:',req.params.id)
UserModel.findById(req.params.id, (err, docs) => {
if (!err) {
console.log('doc:',docs)
res.send(docs);
}
else
@ -48,20 +47,61 @@ module.exports.updateUser = async (req, res) => {
}
};
// module.exports.compteUpdate = async (req,res)=>{
module.exports.compteUpdatePseudo = 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");
const updatedUser = await UserModel.findByIdAndUpdate(
{ _id: req.params.id },
{
$set: {
email: req.body.email,
password: req.body.password,
}
},
{ 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.getImage = async (req, res) => {
try {
const image = await Image.findById(req.params.id);
res.status(200).json(image);
} catch (err) {
res.status(500).json({ message: 'Error getting image' });
}
};
module.exports.saveImage = async (req, res) => {
try {
const { data, contentType } = req.body;
const image = new Image({ data, contentType });
await image.save();
res.status(201).json(image);
} catch (err) {
res.status(500).json({ message: 'Error saving image' });
}
};
// const{email, password}=req.body
// try{
// await UserModel.findOneAndUpdate{
// {_id: req.params.id}
// {set:{
// email: req.body.email
// }}
// }
// }
// }

@ -24,6 +24,18 @@ const NotifSchema = new mongoose.Schema({
}
});
const PictureSchema = new mongoose.Schema({
data: {
type: String,
required: true,
},
contentType: {
type: String,
required: true,
}
});
//trim pour supprimer les espaces
const userSchema = new mongoose.Schema(
{
@ -50,7 +62,7 @@ const userSchema = new mongoose.Schema(
minlength: 6
},
picture: {
type: String,
type: PictureSchema,
default: "./random-user.png"
},
bio :{
@ -96,5 +108,4 @@ userSchema.statics.login = async function({email, password}) {
};
const UserModel = mongoose.model("user", userSchema);
module.exports = UserModel;
module.exports = UserModel;

@ -18,13 +18,16 @@ router.get('/logout', authController.logout);
router.get('/', userController.getAllUsers);
router.get('/:id', userController.userInfo);
router.put("/:id", userController.updateUser);
router.put('/:id', userController.updateUser);
router.delete('/:id', userController.deleteUser);
router.patch('/follow/:id', userController.follow);
router.patch('/unfollow/:id', userController.unfollow);
router.patch('/notif/:id', userController.getNotif);
router.patch('/:id/image', userController.saveImage);
router.get('/:id/image',userController.getImage);
router.put('/update/:id',userController.compteUpdatePseudo);
//upload pb avec postman
router.post("/upload", upload.single('file'), uploadController.uploadProfil);
//router.post("/upload", upload.single('file'), uploadController.uploadProfil);
module.exports = router;
Loading…
Cancel
Save