Advertisement
Guest User

Untitled

a guest
Dec 10th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.42 KB | None | 0 0
  1. const mongoose = require('mongoose');
  2. const Reservation = require('../models/reservation');
  3. const Book = require('../models/book');
  4. const BookController = require('../controllers/books');
  5.  
  6.  
  7. exports.reservations_get_all = (req, res, next) => {
  8. Reservation.find()
  9. .select('book quantity _id')
  10. //.populate('book') //ten populate nie działa
  11. .exec()
  12. .then(docs => {
  13. res.status(200).json({
  14. count: docs.length,
  15. reservations: docs.map(doc => {
  16. return{
  17. _id: doc._id,
  18. book: doc.bookId,
  19. quantity: doc.quantity,
  20. request: {
  21. type: 'GET',
  22. url: 'http://localhost:3000/reservations/' + doc._id
  23. }
  24. }
  25. }),
  26.  
  27. });
  28. })
  29. .catch(err=>{
  30. res.status(500).json({
  31. error: err
  32. });
  33. });
  34. }
  35. exports.reservations_create_reservation = (req, res, next) => {
  36. Book.findById(req.body.bookId)
  37. .then(book=>{
  38. if(!book){
  39. return res.status(404).json({
  40. message: "Book not found"
  41. });
  42. }
  43. if(book.isHired == 1){
  44. return res.status(439).json({
  45. message: "Book is already reserved"
  46. });
  47. }
  48. const reservation = new Reservation({
  49. _id: mongoose.Types.ObjectId(),
  50. quantity: req.body.quantity,
  51. book: req.body.bookId
  52. });
  53. return reservation
  54. .save()
  55. })
  56.  
  57. .then(result => {
  58. console.log(result);
  59. Book.findOneAndUpdate({_id: req.body._id},{$set:{isHired: 1}})
  60. .exec();
  61. res.status(201).json({
  62. message: 'Reservation stored',
  63. createdReservatrion:{
  64. _id: result._id,
  65. book: result.book,
  66. quantity: result.quantity
  67. },
  68. request: {
  69. type: 'GET',
  70. url: 'http://localhost:3000/reservations/' + result._id
  71. }
  72. });
  73. })
  74. .catch(err => {
  75. console.log(err);
  76. res.status(500).json({
  77. error: err
  78. });
  79. });
  80. }
  81.  
  82. exports.reservations_get_reservation = (req, res, next) => {
  83. Reservation.findById(req.params.reservationId)
  84. .populate('book')
  85. .exec()
  86. .then(reservation => {
  87. if(!reservation){
  88. return res.status(404).json({
  89. message: 'Reservation not found'
  90. });
  91. }
  92. res.status(200).json({
  93. reservation: reservation,
  94. request: {
  95. type: 'GET',
  96. url: 'http://localhost:3000/reservations'
  97. }
  98. });
  99. })
  100. .catch(err=>{
  101. res.status(500).json({
  102. error:err
  103. });
  104. });
  105. }
  106.  
  107. exports.reservations_delete_reservation = (req, res, next) => {
  108. Reservation.remove({_id: req.params.reservationId})
  109. .exec()
  110. .then(result =>{
  111. res.status(200).json({
  112. message: 'Reservation deleted',
  113. request: {
  114. type: 'POST',
  115. url: "http://localhost:3000/reservations" ,
  116. body: {bookId: 'ID', quantity: 'Number'}
  117. }
  118. });
  119. })
  120. .catch(err=>{
  121. res.status(500).json({
  122. error:err
  123. });
  124. });
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement