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