diff --git a/backend/routes/users.js b/backend/routes/users.js
index 1d698d1810c8257e4c090288b24fe05e43376da3..58475b8f2603a2b3dbcfc8b6c231a0da226f7f5f 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,46 @@ 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;
+    const myIndex = likedMovies.indexOf(movieOid._id);
+    if (myIndex !== -1) {
+      likedMovies.splice(myIndex, 1);
+      await UserModel.findByIdAndUpdate(userId, {
+        liked_movies: likedMovies,
+      });
+      res.send("Done");
+    } else {
+      res.send("This movie wasn't liked");
+    }
+  } catch (error) {
+    console.log(error);
+    res.send("Internal problem");
+  }
+});
+
 router.delete("/:userId", function (req, res) {
   UserModel.deleteOne({ _id: req.params.userId })
     .then(function () {