From d66c2b222002519524161785c2ea1a0aa4ccb06d Mon Sep 17 00:00:00 2001
From: El Yaagoubi Bilel <bilel.el-yaagoubi@student-cs.fr>
Date: Thu, 9 Jun 2022 12:03:43 +0200
Subject: [PATCH] add liking functionnality

---
 backend/routes/users.js | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/backend/routes/users.js b/backend/routes/users.js
index 1d698d1..9d937d4 100644
--- a/backend/routes/users.js
+++ b/backend/routes/users.js
@@ -1,5 +1,6 @@
 const express = require("express");
 const UserModel = require("../models/user");
+const MovieModel = require("../models/movie");
 const router = express.Router();
 
 router.get("/", function (req, res) {
@@ -32,6 +33,40 @@ router.post("/new", function (req, res) {
     });
 });
 
+router.put("/like", async function (req, res) {
+  try {
+    const userId = await req.body.userId;
+    const movieId = await req.body.movieId;
+    const movieOid = await MovieModel.findOne({ id: movieId });
+    const user = await UserModel.findById(userId);
+    const likedMovies = user.liked_movies.concat([movieOid._id]);
+    await UserModel.findByIdAndUpdate(userId, {
+      liked_movies: likedMovies,
+    });
+    res.send("Done");
+  } catch (error) {
+    console.log(error);
+    res.send("Internal problem");
+  }
+});
+
+router.put("/unlike", async function (req, res) {
+  try {
+    const userId = await req.body.userId;
+    const movieId = await req.body.movieId;
+    const movieOid = await MovieModel.findOne({ id: movieId });
+    const user = await UserModel.findById(userId);
+    const likedMovies = user.liked_movies.concat([movieOid._id]);
+    await UserModel.findByIdAndUpdate(userId, {
+      liked_movies: likedMovies,
+    });
+    res.send("Done");
+  } catch (error) {
+    console.log(error);
+    res.send("Internal problem");
+  }
+});
+
 router.delete("/:userId", function (req, res) {
   UserModel.deleteOne({ _id: req.params.userId })
     .then(function () {
-- 
GitLab