ctrlv-ince/gamezone-react-native
0
1const { Category } = require('../models/category');2 3exports.getCategories = async (req, res) => {4 const categoryList = await Category.find();5 6 if (!categoryList) {7 return res.status(500).json({ success: false });8 }9 res.status(200).send(categoryList);10};11 12exports.getCategoryById = async (req, res) => {13 const category = await Category.findById(req.params.id);14 15 if (!category) {16 return res.status(500).json({ message: 'The category with the given ID was not found.' });17 }18 res.status(200).send(category);19};20 21exports.createCategory = async (req, res) => {22 let category = new Category({23 name: req.body.name,24 icon: req.body.icon,25 color: req.body.color26 });27 category = await category.save();28 29 if (!category) return res.status(400).send('the category cannot be created!');30 31 res.send(category);32};33 34exports.updateCategory = async (req, res) => {35 const existingCategory = await Category.findById(req.params.id);36 if (!existingCategory) return res.status(400).send('Category not found!');37 38 const category = await Category.findByIdAndUpdate(39 req.params.id,40 {41 name: req.body.name,42 icon: req.body.icon || existingCategory.icon,43 color: req.body.color44 },45 { new: true }46 );47 48 if (!category) return res.status(400).send('the category cannot be created!');49 50 res.send(category);51};52 53exports.deleteCategory = (req, res) => {54 Category.findByIdAndDelete(req.params.id)55 .then((category) => {56 if (category) {57 return res.status(200).json({ success: true, message: 'the category is deleted!' });58 } else {59 return res.status(404).json({ success: false, message: 'category not found!' });60 }61 })62 .catch((err) => {63 return res.status(500).json({ success: false, error: err });64 });65};66 