diff --git a/Site Web/client/src/components/AjoutLien.js b/Site Web/client/src/components/AjoutLien.js index 9ff155b4..3e60c301 100644 --- a/Site Web/client/src/components/AjoutLien.js +++ b/Site Web/client/src/components/AjoutLien.js @@ -5,15 +5,41 @@ import { addPost, getPosts } from '../actions/post.actions'; import { UidContext } from './AppContext'; import IconeFavor from '../assets/img/logo.png'; + + const AjoutLien = () => { const uid = useContext(UidContext); const userData = useSelector((state) => state.user.user); const [displayAdd, setDisplayAdd] = useState(false); const [lien, setLien] = useState(""); + const [privee, setPrivee] = useState(false); + const [image, setImage] = useState(""); + const [publique, setPublique] = useState(false); const [description, setDescription] = useState(""); const [tag, setTag] = useState(''); const [tags, setTags] = useState([]); const dispatch = useDispatch(); + const [preview, setPreview] = useState({ image: '', title: '', description: '' }); + + const apiPost = () => { + //const key = '9f24d981b6f0ddfce993ce4a20d58867'; + const keyApi = '2865b6b9d9571dc00bf940fad5728248'; + + const fullLink = `http://api.linkpreview.net/?key=${keyApi}&q=${lien}`; + + axios + .get(fullLink) + .then((res) => setPreview(res.data)) + .catch((err) => console.error(err)); + + if(preview.image === "") { + setImage(""); + } + else { + console.log(typeof preview.image); + setImage(preview.image); + }; + }; const handleSubmit = (e) => { e.preventDefault(); @@ -22,10 +48,10 @@ const AjoutLien = () => { } - const handlePost = async () => { if(isValidUrl(lien)){ if ((description || lien) && tags.length > 0){ + apiPost(); putData(); dispatch(getPosts()); cancelPost(); @@ -48,7 +74,7 @@ const AjoutLien = () => { const putData = async() => { axios - .post(`${process.env.REACT_APP_API_URL}api/post/`, { postedId: userData._id, message: description, lien: lien, tags: tags} + .post(`${process.env.REACT_APP_API_URL}api/post/`, { postedId: userData._id, message: description, lien: lien, tags: tags, publique: publique, privee:privee, image: image,} ) .then((res) => { // if (res.data.errors) { @@ -65,7 +91,7 @@ const AjoutLien = () => { }catch { return false; } - } + }; return ( <> @@ -118,6 +144,22 @@ const AjoutLien = () => { /> +
+ Type publication: + +
+ setPrivee(e.target.value)} + value={true}/> + +
+ +
+ setPublique(e.target.value)} + value={true}/> + +
+
+ { return (
{link}
); } else { + console.log(typeof preview.image); return ( <>
@@ -49,7 +50,7 @@ const Post = ( { post } ) => { useEffect(() => { - !isEmpty(usersData[0]) && !isEmpty(userData) && setIsLoading(false) + !isEmpty(usersData) && !isEmpty(userData) && setIsLoading(false) }) return ( diff --git a/Site Web/controllers/post.controller.js b/Site Web/controllers/post.controller.js index e4b2b52e..e3b96f37 100644 --- a/Site Web/controllers/post.controller.js +++ b/Site Web/controllers/post.controller.js @@ -25,6 +25,9 @@ module.exports.createPost = async (req, res) => { lien: req.body.lien, likers: [], tags: req.body.tags, + image: req.body.image, + publique: req.body.publique, + privee: req.body.privee, comments: [], }); diff --git a/Site Web/models/post.model.js b/Site Web/models/post.model.js index fd4c7a2e..d9c41188 100644 --- a/Site Web/models/post.model.js +++ b/Site Web/models/post.model.js @@ -20,11 +20,21 @@ const postSchema = new mongoose.Schema( likers: { type: [String], required: true - }, + },- tags: { type: [String], required: true }, + image:{ + type: String, + }, + + publique: { + type: Boolean + }, + privee: { + type: Boolean + }, comments: { type: [ { diff --git a/Site Web/routes/user.routes.js b/Site Web/routes/user.routes.js index a75be0a8..e0a862c0 100644 --- a/Site Web/routes/user.routes.js +++ b/Site Web/routes/user.routes.js @@ -12,7 +12,11 @@ router.post('/login', authController.signIn); //router.post('/send-verification-email', authController.verifEmail); //retirer le token (cookie) router.get('/logout', authController.logout); - +router.post('/verify-email',authController.verifyEmail); +router.post('/forgotpassword',authController.forgotPassword); +router.post('/reset/:token',authController.resetPost); +router.get('/reset/:token',authController.resetGet); +router.post('/send-verification-email',authController.sendVerificationEmail); // user router.get('/', userController.getAllUsers);