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...