Files
planetposen/server/controllers/product.js

54 lines
1.1 KiB
JavaScript

const Products = require('src/products.js')
const products = new Products();
// HELPERS
const handleError = (error, res) => {
const { message, status, success } = error;
return res.status(status || 500).send({
success: success || false,
message: message || 'Unable to find product.'
})
}
const handleReturnProduct = (product, res) => {
return res.send({
success: true,
product
})
}
// ROUTES
const allProducts = (req, res) => {
return products.allProducts()
.then(products => res.json(products))
}
const productBySlug = (req, res) => {
const { slug } = req.params;
if (slug != null) {
return products.getBySlug(slug)
.then(product => res.json({ ...product._doc }))
.catch(err => handleError(err, res))
} else {
return res.status(422).send({
success: true,
message: 'Product slug name must be included. Invalid request.'
})
}
}
const addNewProduct = (req, res) => {
const { product } = req.body;
return products.saveNewProduct(product)
.then(resp => res.send(resp))
}
module.exports = {
allProducts,
productBySlug,
addNewProduct
};