Update to movie controller and list

This commit is contained in:
Nikola Petrov
2023-07-06 23:50:39 +02:00
parent d46c4bba61
commit 2c14f5f45d
6 changed files with 117 additions and 128 deletions

View File

@@ -1,4 +1,5 @@
var MovieModel = require('../models/movieModel');
var UserModel = require('../models/userModel');
/**
* movieController.js
@@ -7,118 +8,87 @@ var MovieModel = require('../models/movieModel');
*/
module.exports = {
/**
* movieController.list()
*/
list: function (req, res) {
MovieModel.find()
.then(movies => {
return res.json(movies);
})
.catch(err => {
return res.status(500).json({
message: 'Error when getting movies.',
error: err
});
});
},
/**
* movieController.create()
*/
create: function (req, res) {
var movie = new MovieModel({
title: req.body.title ? req.body.title : req.body.Title,
released: req.body.released ? req.body.released : req.body.Released,
webImg: req.body.webImg ? req.body.webImg : req.body.WebImg,
genre: req.body.genre ? req.body.genre : req.body.Genre,
code: req.body.code ? req.body.code : req.body.Code
});
MovieModel.findOne({ code: movie.code })
.then(movieFound => {
if (movieFound) {
return res.status(409).json({
message: 'Movie already exists'
});
}
else
{
movie.save()
.then(savedMovie => {
// Handle successful save operation
return res.json(savedMovie);
})
.catch(err => {
return res.status(500).json({
message: 'Error when creating movie',
error: err
});
});
}
})
.catch(err => {
return res.status(500).json({
message: 'Error when getting movie',
error: err
})
});
/**
* movieController.list()
*/
list: function (req, res) {
MovieModel.find()
.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' });
}
/**
* movieController.update()
*/
update: function (req, res) {
var id = req.params.id;
MovieModel.findOne({ _id: id })
.then(movie => {
if (!movie) {
return res.status(404).json({
message: 'No such movie'
});
}
movie.title = req.body.title ? req.body.title : movie.title;
movie.released = req.body.released ? req.body.released : movie.released;
movie.webImg = req.body.webImg ? req.body.webImg : movie.webImg;
movie.genre = req.body.genre ? req.body.genre : movie.genre;
movie.code = req.body.code ? req.body.code : movie.code;
return movie.save();
})
.then(updatedMovie => {
return res.json(updatedMovie);
})
.catch(err => {
return res.status(500).json({
message: 'Error when updating movie.',
error: err
});
});
},
const movieFound = await MovieModel.findOne({ code: movieCode });
if (movieFound) {
return res.status(409).json({ message: 'Movie already exists' });
}
/**
* movieController.remove()
*/
remove: function (req, res) {
var id = req.params.id;
console.log(id);
MovieModel.findOneAndDelete({ code: id })
.then(movie => {
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.',
error: err
});
});
},
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,
genre: mData.Genre
});
const savedMovie = await movie.save();
return res.status(201).json(savedMovie);
} 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.' });
}
},
};