Spaces:
Sleeping
Sleeping
File size: 1,947 Bytes
a44b98c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | import Product from "../models/productModel.js";
// Create a new product
const createProduct = async (req, res) => {
try {
// Add the user ID from the protect middleware to the product
const product = await Product.create({
...req.body,
user: req.user._id,
});
res.status(201).json(product);
} catch (error) {
res.status(500).json({ msg: error.message });
}
};
// Get all products
const getProducts = async (req, res) => {
try {
const products = await Product.find({});
res.status(200).json(products);
} catch (error) {
res.status(500).json({ msg: error.message });
}
};
// Get a single product by ID
const getProductById = async (req, res) => {
try {
const { id } = req.params;
const product = await Product.findById(id);
if (!product) {
return res.status(404).json({ msg: "Product not found" });
}
res.status(200).json(product);
} catch (error) {
res.status(500).json({ msg: error.message });
}
};
// Update a product
const updateProduct = async (req, res) => {
try {
const { id } = req.params;
const product = await Product.findByIdAndUpdate(id, req.body, {
new: true, // Return the modified document
runValidators: true,
});
if (!product) {
return res.status(404).json({ msg: "Product not found" });
}
res.status(200).json(product);
} catch (error) {
res.status(500).json({ msg: error.message });
}
};
// Delete a product
const deleteProduct = async (req, res) => {
try {
const { id } = req.params;
const product = await Product.findByIdAndDelete(id);
if (!product) {
return res.status(404).json({ msg: "Product not found" });
}
res.status(200).json({ msg: "Product deleted successfully" });
} catch (error) {
res.status(500).json({ msg: error.message });
}
};
export {
createProduct,
getProducts,
getProductById,
updateProduct,
deleteProduct,
};
|