45 lines
1.3 KiB
JavaScript
45 lines
1.3 KiB
JavaScript
const Category = require('../models/Category');
|
|
const { successResponse, errorResponse } = require('../utils/apiResponse');
|
|
|
|
const getCategories = async (req, res, next) => {
|
|
try {
|
|
const categories = await Category.find({ isActive: true }).sort({ displayOrder: 1 });
|
|
return successResponse(res, 'Categories retrieved', categories);
|
|
} catch (error) {
|
|
next(error);
|
|
}
|
|
};
|
|
|
|
const createCategory = async (req, res, next) => {
|
|
try {
|
|
const category = new Category(req.body);
|
|
const saved = await category.save();
|
|
return successResponse(res, 'Category created', saved, 201);
|
|
} catch (error) {
|
|
next(error);
|
|
}
|
|
};
|
|
|
|
const updateCategory = async (req, res, next) => {
|
|
try {
|
|
const category = await Category.findByIdAndUpdate(req.params.id, req.body, { new: true });
|
|
if (!category) return errorResponse(res, 'Category not found', [], 404);
|
|
return successResponse(res, 'Category updated', category);
|
|
} catch (error) {
|
|
next(error);
|
|
}
|
|
};
|
|
|
|
const deleteCategory = async (req, res, next) => {
|
|
try {
|
|
const category = await Category.findByIdAndDelete(req.params.id);
|
|
if (!category) return errorResponse(res, 'Category not found', [], 404);
|
|
return successResponse(res, 'Category deleted');
|
|
} catch (error) {
|
|
next(error);
|
|
}
|
|
};
|
|
|
|
module.exports = { getCategories, createCategory, updateCategory, deleteCategory };
|
|
|