Spaces:
Sleeping
Sleeping
| // 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 }; |