92 lines
2.4 KiB
JavaScript
92 lines
2.4 KiB
JavaScript
var MovieModel = require('../models/movieModel');
|
|
var UserModel = require('../models/userModel');
|
|
|
|
/**
|
|
* movieController.js
|
|
*
|
|
* @description :: Server-side logic for managing movies.
|
|
*/
|
|
module.exports = {
|
|
|
|
/**
|
|
* movieController.list()
|
|
*/
|
|
list: function (req, res) {
|
|
MovieModel.find({}, { _id: 0, __v: 0 })
|
|
.then(movies => {
|
|
return res.json(movies);
|
|
})
|
|
.catch(err => {
|
|
return res.status(500).json({
|
|
message: 'Error when getting movies.',
|
|
error: err
|
|
});
|
|
});
|
|
},
|
|
|
|
/**
|
|
* movieController.create()
|
|
*/
|
|
create: async function (req, res) {
|
|
const movieCode = req.body.code;
|
|
const passp = req.body.pass;
|
|
try {
|
|
|
|
const userFound = await UserModel.findOne({ pass: passp });
|
|
if (!userFound) {
|
|
return res.status(404).json({ message: 'Wrong password' });
|
|
}
|
|
|
|
const movieFound = await MovieModel.findOne({ code: movieCode });
|
|
if (movieFound) {
|
|
return res.status(409).json({ message: 'Movie already exists' });
|
|
}
|
|
|
|
const uri = `http://www.omdbapi.com/?i=${movieCode}&apikey=${userFound.key}`;
|
|
const mJson = await fetch(uri);
|
|
const mData = await mJson.json();
|
|
|
|
if (mData.Response == 'False') {
|
|
return res.status(404).json({ message: 'wrong code' });
|
|
}
|
|
|
|
const movie = new MovieModel({
|
|
code: movieCode,
|
|
title: mData.Title,
|
|
released: mData.Released,
|
|
webImg: mData.Poster,
|
|
});
|
|
|
|
const savedMovie = await movie.save();
|
|
return res.status(201).json(movie);
|
|
} catch (err) {
|
|
return res.status(500).json({ message: 'Error when creating movie' });
|
|
}
|
|
},
|
|
|
|
/**
|
|
* movieController.delete()
|
|
*/
|
|
remove: async function (req, res) {
|
|
var id = req.body.code;
|
|
const passp = req.body.pass;
|
|
|
|
try {
|
|
const userFound = await UserModel.findOne({ pass: passp });
|
|
if (!userFound) {
|
|
return res.status(404).json({ message: 'Wrong password' });
|
|
}
|
|
|
|
const movie = await MovieModel.findOneAndDelete({ code: id });
|
|
if (!movie) {
|
|
return res.status(404).json({ message: 'No such movie' });
|
|
}
|
|
|
|
return res.status(204).json();
|
|
}
|
|
catch (err) {
|
|
return res.status(500).json({ message: 'Error when deleting the movie.' });
|
|
}
|
|
},
|
|
};
|