rajesh-grocery-api / src /controllers /categoryController.js
rohanshaw's picture
Upload 20 files
efb87a5 verified
// src/controllers/categoryController.js
const Category = require('../models/Category');
// @desc Get all categories
// @route GET /api/categories
// @access Public
const getCategories = async (req, res) => {
try {
const categories = await Category.find({});
res.json(categories);
} catch (error) {
res.status(500).json({ message: error.message });
}
};
// @desc Create category
// @route POST /api/categories
// @access Private/Admin
const createCategory = async (req, res) => {
try {
const { name, image } = req.body;
const categoryExists = await Category.findOne({ name });
if (categoryExists) {
return res.status(400).json({ message: 'Category already exists' });
}
const category = await Category.create({ name, image });
res.status(201).json(category);
} catch (error) {
res.status(400).json({ message: error.message });
}
};
// @desc Delete category
// @route DELETE /api/categories/:id
// @access Private/Admin
const deleteCategory = async (req, res) => {
try {
const category = await Category.findById(req.params.id);
if (category) {
await category.deleteOne();
res.json({ message: 'Category removed' });
} else {
res.status(404).json({ message: 'Category not found' });
}
} catch (error) {
res.status(500).json({ message: error.message });
}
};
module.exports = { getCategories, createCategory, deleteCategory };