inventory-api / controllers /productController.js
Prathamesh2403's picture
Readme.md
a44b98c
Raw
History Blame Contribute Delete
1.95 kB
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,
};