const Product = require('../models/Product');
module.exports = {
async index(req, res) {
const posts = await Product.find({}, '_id name imagePath price');
res.json(posts);
},
async show(req, res) {
const post = await Product.findOne({_id: req.params.id}, '_id name description imagePath price');
res.json(post);
},
store(req, res) {
let newProductObj = {
name: req.body.name,
description: req.body.description,
//imagePath: null,
price: req.body.price
};
if (req.file)
newProductObj.imagePath = req.file.path;
const newProduct = new Product(newProductObj);
newProduct.save()
.then(() => res.json({status: "Product successfully added!"}))
.catch(error => res.status(400).json({
status: "Couldn't add product!",
error
}));
},
update(req, res) {
let updatedProduct = {
name: req.body.name,
description: req.body.description,
//imagePath: null,
price: req.body.price
};
if (req.file)
updatedProduct.imagePath = req.file.path;
Product.findOneAndUpdate({_id: req.params.id}, {$set: updatedProduct}, {new: true}, (error, product) => {
if (error)
res.status(400).json({status: "Couldn't update product!", error});
else
res.json({status: "Successfully updated product!", product});
});
},
destroy(req, res) {
Product.findByIdAndRemove(req.params.id, (error, product) => {
if (error)
res.status(400).json({status: "Error when removing product!", error});
else
res.json({status: "Product successfully removed!", product})
});
}
};