taller-web/taller4/controllers/bookController.js

84 lines
2.3 KiB
JavaScript

var Book = require('../models/book.js');
function list_books(req, res) {
Book.find({}, (err, book) => {
if (err) {
return res.status(500).send({ message: 'Error: Could not get books!' });
}
res.status(200).send({ book });
})
}
function show_book(req, res) {
let id = { '_id': req.params.id };
Book.find(id, (err, book) => {
if (err) {
return res.status(500).send({ message: 'Error: Could not get books!' });
}
res.status(200).send({ book });
})
}
function new_book(req, res) {
try{
let book = new Book();
book.nombre = req.body.nombre;
book.anio = req.body.anio;
book.idioma = req.body.idioma;
book.autor = req.body.autor;
book.save((err, bookSave) => {
if (err) {
return res.status(400).send({ message: `Error: Could not save book to database!> ${err}` });
}
res.status(200).send({ book: bookSave });
})
}
catch (error) {
res.status(500).send({ message: `error:` + error });
}
}
function modify_book(req, res) {
let book = new Book();
book._id = req.params.id;
book.nombre = req.body.nombre;
book.anio = req.body.anio;
book.idioma = req.body.idioma;
book.autor = req.body.autor;
Book.updateOne({ '_id': book._id }, book, (err, updatedBook) => {
if (err) {
return res.status(400).send({ message: `Error: Could not save book to database!> ${err}` });
}
if (updatedBook.nModified == 1) {
res.status(200).send({ message: `Book modified!` });
}
else {
res.status(400).send({ message: `Error: Book could not be modified!` });
}
});
}
function delete_book(req, res) {
let id = { '_id': req.params.id };
Book.deleteOne(id, (err, book) => {
if (err) {
return res.status(400).send({ message: `Error: Could not save book to database!> ${err}` });
}
if (book.deletedCount == 1) {
res.status(200).send({ message: `Book deleted!` });
}
else {
res.status(400).send({ message: `Error: Book could not be deleted!` });
}
});
}
module.exports = {
list_books,
show_book,
new_book,
modify_book,
delete_book
};