You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.js 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. const Order = require('../../../models/order');
  2. import dbConnect from '../../../utils/helpers/dbHelpers';
  3. const mongoose = require('mongoose');
  4. async function handler(req, res) {
  5. const { method } = req;
  6. const ownerID = req.query.ownerID;
  7. await dbConnect();
  8. switch (method) {
  9. case 'POST': {
  10. try {
  11. const order = await Order.create(
  12. req.body
  13. ); /* create a new model in the database */
  14. res
  15. .status(201)
  16. .json({ message: 'Your order was submitted successfully!', order });
  17. } catch (error) {
  18. res.status(400).json({ message: error });
  19. }
  20. break;
  21. }
  22. case 'GET': {
  23. try {
  24. const objectId = mongoose.Types.ObjectId(ownerID);
  25. const orders = await Order.find({ owner: objectId });
  26. if (!orders) {
  27. res.status(200).json({
  28. message:
  29. 'There are currently no orders in our database for the selected owner.',
  30. orders: [],
  31. });
  32. }
  33. res.status(200).json({
  34. message:
  35. 'All orders from our database for the selected owner were fetched successfully.',
  36. orders,
  37. });
  38. } catch (error) {
  39. res.status(400).json({ message: error });
  40. }
  41. break;
  42. }
  43. default:
  44. res.status(405).json({ message: 'Method not allowed' });
  45. break;
  46. }
  47. }
  48. export default handler;