const express = require("express");
const RecoModel = require("../models/recommendation");
const router = express.Router();

// router.get("/", function (req, res) {
//   RecoModel.find({}).then(function (users) {
//     res.json();
//   });
// });

router.get("/:userId", async function (req, res) {
  const userId = await req.params["userId"];
  console.log(userId);
  const userPopulated = await RecoModel.findOne({ user_id: userId }).populate(
    "recommended_movies"
  );
  res.send(userPopulated.recommended_movies);
});

// router.get("/isliked/:movieId/:userId", async function (req, res) {
//   const userId = await req.params["userId"];
//   console.log(userId);
//   const movieId = await req.params["movieId"];
//   const user = await UserModel.findById(userId);
//   const movieOid = await MovieModel.findOne({ id: movieId });
//   const likedMovies = user.liked_movies;
//   const myIndex = likedMovies.indexOf(movieOid._id) + 1;
//   console.log(Boolean(myIndex));
//   res.send(Boolean(myIndex));
// });

// router.post("/new", function (req, res) {
//   const newUser = new UserModel({
//     email: req.body.email,
//     firstName: req.body.firstName,
//     lastName: req.body.lastName,
//   });

//   newUser
//     .save()
//     .then(function (newDocument) {
//       res.status(201).json(newDocument);
//     })
//     .catch(function (error) {
//       console.error(error);
//       if (error.code === 11000) {
//         res.status(400).json({
//           message: `User with email "${newUser.email}" already exists`,
//         });
//       } else {
//         res.status(500).json({ message: "Error while creating the user" });
//       }
//     });
// });

// 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;
//     const myIndex = likedMovies.indexOf(movieOid._id);
//     if (myIndex == -1) {
//       likedMovies.splice(myIndex, 1);
//       await UserModel.findByIdAndUpdate(userId, {
//         liked_movies: likedMovies.concat([movieOid._id]),
//       });
//       console.log(movieOid.title);
//       console.log(movieOid._id);
//       res.send("Done");
//     } else {
//       console.log(movieOid.title);
//       console.log(movieOid._id);
//       console.log("This movie is already liked");
//       res.send("This movie is already liked");
//     }
//   } 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");
//       console.log(movieOid.title);
//       console.log(movieOid._id);
//     } else {
//       res.send("This movie wasn't liked");
//       console.log(movieOid.title);
//       console.log(movieOid._id);
//       console.log("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 () {
//       res.status(204).json({ message: "User successfully deleted" });
//     })
//     .catch(function () {
//       res.status(500).json({ message: "Error while deleting the user" });
//     });
// });

module.exports = router;