diff --git a/Controllers/categories.js b/Controllers/categories.js new file mode 100644 index 0000000..7927d30 --- /dev/null +++ b/Controllers/categories.js @@ -0,0 +1,47 @@ +const Category = require('../models/category'); + +module.exports.index = async (req, res) => { + const categoryList = await Category.find(); + if(!categoryList) return res.status(500).json({ success: false }); + res.status(200).json(categoryList); +} + +module.exports.finding = async (req, res) => { + const category = await Category.findById(req.params.id); + if(!category) return res.status(404).json({ success: false, message: 'Category not found' }); + res.status(200).json(category); +} + +module.exports.creatingCategory = async (req, res) => { + let category = new Category({ + name: req.body.name, + icon: req.body.icon, + color: req.body.color + }); + category = await category.save(); + if(!category) return res.status(500).send('Category cannot be created'); + res.status(201).json(category); +} + +module.exports.updateCategory = async (req, res) => { + const category = await Category.findByIdAndUpdate(req.params.id, { + name: req.body.name, + icon: req.body.icon, + color: req.body.color + }, { new: true }); + if(!category) return res.status(404).send('Category cannot be updated'); + res.status(200).json(category); +} + +module.exports.deleteCategory = async (req, res) => { + try { + const category = await Category.findByIdAndRemove(req.params.id); + if(category){ + return res.status(200).json({ success: true, message: 'Category deleted successfully' }); + } else { + return res.status(404).json({ success: false, message: 'Category not found' }); + } + } catch(err) { + return res.status(500).json({ success: false, error: err }); + } +} diff --git a/routes/categories.js b/routes/categories.js index 4fafe80..b534954 100644 --- a/routes/categories.js +++ b/routes/categories.js @@ -1,64 +1,15 @@ const express = require('express'); -const router = express(); +const router = express.Router(); +const categoriesController = require("../Controllers/categories") -const Category = require('../models/category'); +router.get('/',categoriesController.index ) -router.get('/', async (req, res) => { - const categoryList = await Category.find(); +router.get('/:id', categoriesController.finding) - if (!categoryList) { - res.status(500).json({ success: false}) - } - res.status(200).send(categoryList) -}) +router.post('/', categoriesController.creatingCategory) -router.get('/:id', async (req, res) => { - const category = await Category.findById(req.params.id); +router.put('/:id', categoriesController.UpdateCategory) - if (!category) { - res.status(500).json({ success: false, message: 'The category with the given ID not exists'}) - } - res.status(200).send(category) -}) - -router.post('/', async (req, res) => { - let category = new Category({ - name: req.body.name, - icon: req.body.icon, - color: req.body.color - }) - - category = await category.save(); - - if(!category) - return res.status(404).send('Category cannot be created') - res.send(category); -}) - -router.put('/:id', async (req, res) => { - const category = await Category.findByIdAndUpdate(req.params.id, { - name: req.body.name, - icon: req.body.icon, - color: req.body.color - }, { - new: true - }) - - if (!category) - return res.status(404).send('Category cannot be created') - res.send(category); -}) - -router.delete('/:id', (req, res)=>{ - Category.findByIdAndRemove(req.params.id).then(category => { - if(category){ - return res.status(200).json({ success: true, message: 'Category deleted successfully'}) - } else { - return res.status(404).json({ success: false, message: 'Category cannot find'}) - } - }).catch (err=>{ - return res.status(400).json({ success: false, error: err}) - }) -}) +router.delete('/:id', categoriesController.DeleteCategory) module.exports = router; \ No newline at end of file