avancement image profil
continuous-integration/drone/push Build encountered an error Details

master
Darius BERTRAND 3 years ago
parent 3399527a49
commit 5753570ae7

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

@ -11,11 +11,10 @@ const ConfigurationDuProfil = ()=>{
const userData = useSelector((state) => state.user.user); const userData = useSelector((state) => state.user.user);
const [pseudo, setPseudo] = useState(userData.pseudo); const [pseudo, setPseudo] = useState(userData.pseudo);
const[userPicture, setUserPicture] = useState(null); const [userPicture, setUserPicture] = useState(userData.picture.data);
const [tmpImage, setTmpImage] =useState(null); const [tmpImage, setTmpImage] =useState(null);
const [tmpAffichageImage, setTmpAffichageImage]=useState(PLUS) const [tmpAffichageImage, setTmpAffichageImage]=useState(PLUS);
const [displayAdd, setDisplayAdd] = useState(false); const [displayAdd, setDisplayAdd] = useState(false);
const uid = useContext(UidContext);
const [message, setMessage] = useState(''); const [message, setMessage] = useState('');
const handleLoadFile=(e)=>{ const handleLoadFile=(e)=>{
@ -31,25 +30,11 @@ const ConfigurationDuProfil = ()=>{
console.log("eeee"); console.log("eeee");
}; };
console.log("rrrrrr"); console.log("rrrrrr");
setTmpAffichageImage(`${tmpImage.data}`) setTmpAffichageImage(`${tmpImage.data}`);
console.log("uuuuuuuuuuuu"); console.log("uuuuuuuuuuuu");
console.log(tmpImage);
}; };
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 =()=> { const handleTPM =()=> {
console.log("test"); console.log("test");
console.log(tmpImage); console.log(tmpImage);
@ -60,7 +45,7 @@ const ConfigurationDuProfil = ()=>{
e.preventDefault(); e.preventDefault();
try { try {
await axios.patch( `${process.env.REACT_APP_API_URL}api/user/${uid}/image`, tmpImage); await axios.patch( `${process.env.REACT_APP_API_URL}api/user/${userData.id}/image`, tmpImage);
setMessage("Image de profil mise à jour avec succès!"); setMessage("Image de profil mise à jour avec succès!");
} catch (err) { } catch (err) {
setMessage("Erreur lors de la mise à jour de l'image de profil"); setMessage("Erreur lors de la mise à jour de l'image de profil");

@ -1,5 +1,5 @@
import React, { useState } from 'react'; import React, { useState } from 'react';
import { NavLink, redirect} from "react-router-dom"; import { NavLink} from "react-router-dom";
import axios from "axios"; import axios from "axios";
import Connexion from "./Connexion"; import Connexion from "./Connexion";

@ -8,7 +8,6 @@ import FollowHandler from "./UserProfil/FollowHandler";
const MiniProfil = ({uid} ) => { const MiniProfil = ({uid} ) => {
const [userData, setUserData] = useState(null); const [userData, setUserData] = useState(null);
useEffect(() => { useEffect(() => {
async function fetchData() { async function fetchData() {
const response = await fetch(`${process.env.REACT_APP_API_URL}api/user/${uid}`); const response = await fetch(`${process.env.REACT_APP_API_URL}api/user/${uid}`);
@ -25,7 +24,7 @@ const MiniProfil = ({uid} ) => {
return ( return (
<div className="ListReco"> <div className="ListReco">
<div className="UtiReco"> <div className="UtiReco">
<img className="image" src={userData.picture}/> <img className="image" src={userData.picture.data}/>
<a href={`/Profil/${uid}`}>{userData.pseudo}</a> <a href={`/Profil/${uid}`}>{userData.pseudo}</a>
</div> </div>
</div> </div>

@ -91,10 +91,8 @@ module.exports.signIn = async (req, res) => {
console.log("signin: ",req.body); console.log("signin: ",req.body);
const {email, password} = req.body const {email, password} = req.body
try { try {
console.log("test user1 ");
const user = await UserModel.login({email, password}); const user = await UserModel.login({email, password});
console.log("test user2 ");
//creation d'un token //creation d'un token

@ -1,6 +1,6 @@
const UserModel = require("../models/user.model"); const UserModel = require("../models/user.model");
const ObjectID = require("mongoose").Types.ObjectId; const ObjectID = require("mongoose").Types.ObjectId;
/*const Image = mongoose.model('Image', ImageSchema);*/
//-password pour ne pas donner le password //-password pour ne pas donner le password
module.exports.getAllUsers = async (req, res) => { module.exports.getAllUsers = async (req, res) => {
@ -77,10 +77,12 @@ module.exports.compteUpdatePseudo = async (req, res) => {
} }
module.exports.getImage = async (req, res) => { module.exports.getImage = async (req, res) => {
try { try {
const image = await Image.findById(req.params.id); const user = await UserModel.findById(req.params.id);
res.status(200).json(image); if (!user) {
return res.status(404).json({ message: 'User not found' });
}
res.status(200).json(user.picture);
} catch (err) { } catch (err) {
res.status(500).json({ message: 'Error getting image' }); res.status(500).json({ message: 'Error getting image' });
} }
@ -89,7 +91,7 @@ module.exports.getImage = async (req, res) => {
module.exports.saveImage = async (req, res) => { module.exports.saveImage = async (req, res) => {
try { try {
const { data, contentType } = req.body; const { data, contentType } = req.body;
const image = new Image({ data, contentType }); const image = new UserModel.picture({ data, contentType });
await image.save(); await image.save();
res.status(201).json(image); res.status(201).json(image);
} catch (err) { } catch (err) {

@ -63,7 +63,7 @@ const userSchema = new mongoose.Schema(
}, },
picture: { picture: {
type: PictureSchema, type: PictureSchema,
default: "./random-user.png" default: { data: "data:image/png;base64,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", contentType: "image/png" }
}, },
bio :{ bio :{
type: String, type: String,
@ -89,6 +89,7 @@ const userSchema = new mongoose.Schema(
// play function before save into display: 'block', // play function before save into display: 'block',
userSchema.pre("save", async function(next) { userSchema.pre("save", async function(next) {
const salt = await bcrypt.genSalt(); const salt = await bcrypt.genSalt();
this.password = await bcrypt.hash(this.password, salt); this.password = await bcrypt.hash(this.password, salt);
next(); next();

Loading…
Cancel
Save