orderData.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. const Order = require("../models/order.js");
  2. const Merchant = require("../models/merchant.js");
  3. module.exports = {
  4. getOrders: function(){
  5. if(!req.session.user){
  6. req.session.error = "Must be logged in to do that";
  7. return res.redirect("/");
  8. }
  9. Order.aggregate([
  10. {$match: {merchant: req.session.user}},
  11. {$sort: {date: -1}},
  12. {$limit: 25},
  13. {$project: {
  14. _id: 0,
  15. orderId: 1,
  16. date: 1,
  17. ingredients: 1
  18. }}
  19. ]).toArray()
  20. .then((orders)=>{
  21. return res.json({orders});
  22. })
  23. .catch((err)=>{
  24. return res.json("Error: unable to retrieve your orders");
  25. });
  26. },
  27. //POST - Creates a new order from the site
  28. // req.body = {
  29. // orderId: user created order id
  30. // date: creation date
  31. // ingredients: [{
  32. // ingredient: id of the ingredient
  33. // quantity: amount of the ingredient purchased
  34. // price: price per unit for ingredient
  35. // }]
  36. // }
  37. createOrder: function(req, res){
  38. if(!req.session.user){
  39. req.session.error = "Must be logged in to do that";
  40. return res.redirect("/");
  41. }
  42. let newOrder = new Order(req.body);
  43. newOrder.merchant = req.session.user;
  44. newOrder.save()
  45. .then((response)=>{
  46. return res.json({});
  47. })
  48. .catch((err)=>{
  49. return res.json("Error: unable to save the new order");
  50. });
  51. }
  52. }