From 224299238bffc1b7dc694ae6f40f906886bebd00 Mon Sep 17 00:00:00 2001 From: Sathishkumar Krishnan Date: Wed, 9 Feb 2022 19:28:04 +0530 Subject: [PATCH] feat: added get level & sublevels by bay, level & sublevel id apis --- src/controller/bay.controller.js | 20 ++++++++++++++++++++ src/controller/bay.router.js | 5 +++++ src/controller/level.controller.js | 20 ++++++++++++++++++++ src/controller/level.router.js | 5 +++++ src/controller/sublevel.controller.js | 20 ++++++++++++++++++++ src/controller/sublevel.router.js | 5 +++++ 6 files changed, 75 insertions(+) diff --git a/src/controller/bay.controller.js b/src/controller/bay.controller.js index be0c2ed..44d8cf5 100644 --- a/src/controller/bay.controller.js +++ b/src/controller/bay.controller.js @@ -104,4 +104,24 @@ module.exports = { next(error); } }, + + getBayLevelsByID: async (req, res, next) => { + const { id } = req.params; + + if (!id) { + res.status(400).send({ success: false, message: "Missing id param" }); + return; + } + + try { + const bayData = await Bay.findById(id).populate("levels"); + if (!bayData) { + res.status(404).send({ success: false, message: "not found" }); + return; + } + res.send({ success: true, data: bayData.levels }); + } catch (error) { + next(error); + } + }, }; diff --git a/src/controller/bay.router.js b/src/controller/bay.router.js index fd27dd2..080c5fe 100644 --- a/src/controller/bay.router.js +++ b/src/controller/bay.router.js @@ -12,6 +12,11 @@ router.get("/all", controller.getAllBay); */ router.get("/:id", controller.getBayByID); +/** + * @route /bay/:id/levels + */ +router.get("/:id/levels", controller.getBayLevelsByID); + /** * @route /bay/ */ diff --git a/src/controller/level.controller.js b/src/controller/level.controller.js index 2be1b21..6680186 100644 --- a/src/controller/level.controller.js +++ b/src/controller/level.controller.js @@ -102,4 +102,24 @@ module.exports = { next(error); } }, + + getLevelSublevelsByID: async (req, res, next) => { + const { id } = req.params; + + if (!id) { + res.status(400).send({ success: false, message: "Missing id param" }); + return; + } + + try { + const levelData = await Level.findById(id).populate({ path: "sub_levels", populate: { path: "sub_level_id" } }); + if (!levelData) { + res.status(404).send({ success: false, message: "not found" }); + return; + } + res.send({ success: true, data: levelData.sub_levels }); + } catch (error) { + next(error); + } + }, }; diff --git a/src/controller/level.router.js b/src/controller/level.router.js index f3a6846..3631d4c 100644 --- a/src/controller/level.router.js +++ b/src/controller/level.router.js @@ -12,6 +12,11 @@ router.get("/all", controller.getAllLevel); */ router.get("/:id", controller.getLevelByID); +/** + * @route /level/:id/sublevels + */ +router.get("/:id/sublevels", controller.getLevelSublevelsByID); + /** * @route /level/ */ diff --git a/src/controller/sublevel.controller.js b/src/controller/sublevel.controller.js index 47e1672..4c353a8 100644 --- a/src/controller/sublevel.controller.js +++ b/src/controller/sublevel.controller.js @@ -162,4 +162,24 @@ module.exports = { next(error); } }, + + getSubLevelChildrenByID: async (req, res, next) => { + const { id } = req.params; + + if (!id) { + res.status(400).send({ success: false, message: "Missing id param" }); + return; + } + + try { + const sublevelData = await Sublevel.findById(id).populate({ path: "sub_levels", populate: { path: "sub_level_id" } }); + if (!sublevelData) { + res.status(404).send({ success: false, message: "not found" }); + return; + } + res.send({ success: true, data: sublevelData.sub_levels }); + } catch (error) { + next(error); + } + }, }; diff --git a/src/controller/sublevel.router.js b/src/controller/sublevel.router.js index fd0ea63..7a511b1 100644 --- a/src/controller/sublevel.router.js +++ b/src/controller/sublevel.router.js @@ -12,6 +12,11 @@ router.get("/all", controller.getAllSublevel); */ router.get("/:id", controller.getSubLevelByID); +/** + * @route /sublevel/:id/sublevels + */ +router.get("/:id/sublevels", controller.getSubLevelChildrenByID); + /** * @route /sublevel/ */