Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const mongoose = require('mongoose');
- const Reservation = require('../models/reservation');
- const Book = require('../models/book');
- const BookController = require('../controllers/books');
- exports.reservations_get_all = (req, res, next) => {
- Reservation.find()
- .select('book quantity _id')
- //.populate('book') //ten populate nie działa
- .exec()
- .then(docs => {
- res.status(200).json({
- count: docs.length,
- reservations: docs.map(doc => {
- return{
- _id: doc._id,
- book: doc.bookId,
- quantity: doc.quantity,
- request: {
- type: 'GET',
- url: 'http://localhost:3000/reservations/' + doc._id
- }
- }
- }),
- });
- })
- .catch(err=>{
- res.status(500).json({
- error: err
- });
- });
- }
- exports.reservations_create_reservation = (req, res, next) => {
- Book.findById(req.body.bookId)
- .then(book=>{
- if(!book){
- return res.status(404).json({
- message: "Book not found"
- });
- }
- if(book.isHired == 1){
- return res.status(439).json({
- message: "Book is already reserved"
- });
- }
- const reservation = new Reservation({
- _id: mongoose.Types.ObjectId(),
- quantity: req.body.quantity,
- book: req.body.bookId
- });
- return reservation
- .save()
- })
- .then(result => {
- console.log(result);
- Book.findOneAndUpdate({_id: req.body._id},{$set:{isHired: 1}})
- .exec();
- res.status(201).json({
- message: 'Reservation stored',
- createdReservatrion:{
- _id: result._id,
- book: result.book,
- quantity: result.quantity
- },
- request: {
- type: 'GET',
- url: 'http://localhost:3000/reservations/' + result._id
- }
- });
- })
- .catch(err => {
- console.log(err);
- res.status(500).json({
- error: err
- });
- });
- }
- exports.reservations_get_reservation = (req, res, next) => {
- Reservation.findById(req.params.reservationId)
- .populate('book')
- .exec()
- .then(reservation => {
- if(!reservation){
- return res.status(404).json({
- message: 'Reservation not found'
- });
- }
- res.status(200).json({
- reservation: reservation,
- request: {
- type: 'GET',
- url: 'http://localhost:3000/reservations'
- }
- });
- })
- .catch(err=>{
- res.status(500).json({
- error:err
- });
- });
- }
- exports.reservations_delete_reservation = (req, res, next) => {
- Reservation.remove({_id: req.params.reservationId})
- .exec()
- .then(result =>{
- res.status(200).json({
- message: 'Reservation deleted',
- request: {
- type: 'POST',
- url: "http://localhost:3000/reservations" ,
- body: {bookId: 'ID', quantity: 'Number'}
- }
- });
- })
- .catch(err=>{
- res.status(500).json({
- error:err
- });
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement