diff --git a/controllers/directoryController.js b/controllers/directoryController.js index e01bba6..b83409a 100644 --- a/controllers/directoryController.js +++ b/controllers/directoryController.js @@ -202,4 +202,32 @@ export const getSelfDirectory = async (req, res) => { }); } -}; \ No newline at end of file +}; +export const setStatus = async (req, res) => { + try { + const id = req.params.id; + if (!id) return res.status(400).json({ message: 'id is required' }); + + const directory = await directoryModel.findById(req.params.id) + + if (!directory) + return res + .status(404) + .json({ message: 'Did not find directory by given id' }); + if (directory.status === "true") { + directory.status = false + } + else { + directory.status = true + } + + directory.save(); + // console.log(directory) + res.status(200).json(directory); + } catch (error) { + console.log(error); + res.status(500).json({ + message: error.message + }); + } +}; diff --git a/routes/directoryRoute.js b/routes/directoryRoute.js index 7f4c009..597ba64 100644 --- a/routes/directoryRoute.js +++ b/routes/directoryRoute.js @@ -5,10 +5,12 @@ import { updateDirectory, deleteOneDirectory, getOneDirectory, - getSelfDirectory + getSelfDirectory, + setStatus + } from "../controllers/directoryController.js" const router = express.Router(); -import { isAuthenticatedUser } from "../middlewares/auth.js" +import { isAuthenticatedUser, authorizeRoles } from "../middlewares/auth.js" import multer from 'multer' @@ -29,7 +31,9 @@ router.route("/directory/getAll/").get(getAllDirectory) router.route("/directory/getOne/:id").get(getOneDirectory) router.route("/directory/update/:id").put(isAuthenticatedUser, updateDirectory); router.route("/directory/delete/:id").delete(isAuthenticatedUser, deleteOneDirectory); -router.route("/directory/self/:id").get(isAuthenticatedUser, getSelfDirectory); //get Directory from user id +router.route("/directory/self/:id").get(isAuthenticatedUser, getSelfDirectory); +router.route("/directory/admin/setStatus/:id").get(isAuthenticatedUser, authorizeRoles('admin'), setStatus); + export default router; \ No newline at end of file diff --git a/tmp/tmp-1-1659946125472 b/tmp/tmp-1-1659946125472 new file mode 100644 index 0000000..6fb99c9 Binary files /dev/null and b/tmp/tmp-1-1659946125472 differ diff --git a/tmp/tmp-2-1659946158121 b/tmp/tmp-2-1659946158121 new file mode 100644 index 0000000..6fb99c9 Binary files /dev/null and b/tmp/tmp-2-1659946158121 differ diff --git a/tmp/tmp-3-1659946272271 b/tmp/tmp-3-1659946272271 new file mode 100644 index 0000000..6fb99c9 Binary files /dev/null and b/tmp/tmp-3-1659946272271 differ diff --git a/tmp/tmp-4-1659946422398 b/tmp/tmp-4-1659946422398 new file mode 100644 index 0000000..25c7510 Binary files /dev/null and b/tmp/tmp-4-1659946422398 differ diff --git a/tmp/tmp-5-1659946527577 b/tmp/tmp-5-1659946527577 new file mode 100644 index 0000000..25c7510 Binary files /dev/null and b/tmp/tmp-5-1659946527577 differ