JSFiddle - React, Tailwind, and code Playground

by rhudecaviar

JavaScript

'use strict';

const express = require('express');
const morgan = require('morgan');
const mongoose = require('mongoose');
mongoose.Promise = global.Promise;

const {
  DATABASE_URL,
  PORT
} = require('./config');
const {
  Order
} = require('./models');
const {
  Menu
} = require('./models');

app.use(morgan('common'));
app.use(express.json());


// GUESTS CAN:

// get all orders

app.get("/orders", (req, res) => {
  Order.find()
    .limit(10)
    .then(orders => {
      res.json({
        orders: orders.map(Order => Order.serialize())
      });
    })
    .catch(err => {
      console.error(err);
      res.status(500).json({
        message: "Internal server error"
      });
    });
});

// get orders by id

app.get('/orders/:id', (req, res) => {
  Order
    .findById(req.params.id)
    .then(order => res.json(order.serialize()))
    .catch(err => {
      console.error(err);
      res.status(500).json({
        error: 'something went horribly awry'
      });
    });
});

//  POST  order 

app.post("/orders", (req, res) => {
  const requiredFields = ['guests', 'dishes', 'beverages', 'deliveryTime', 'location', 'notes'];
  for (let i = 0; i < requiredFields.length; i++) {
    const field = requiredFields[i];
    if (!(field in req.body)) {
      const message = `Missing \`${field}\` in request body`;
      console.error(message);
      return res.status(400).send(message);
    }
  }

  Order
    .create({
      guests: req.body.guests,
      dishes: req.body.dishes,
      beverages: req.body.beverages,
      created_at: req.body.created_at,
      deliveryTime: req.body.deliveryTime,
      location: req.body.location,
      notes: req.body.notes
    })
    .then(order => res.status(201).json(Order.serialize()))
    .catch(err => {
      console.error(err);
      res.status(500).json({
        error: 'Something went wrong'
      });
    });

});

// UPDATE AN ORDER BY ID

app.put('/orders/:id', (req, res) => {
  if (!(req.params.id && req.body.id && req.params.id...