Spaces:
Sleeping
Sleeping
File size: 1,448 Bytes
efb87a5 |
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 |
// 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 }; |