diff --git a/src/controller/area.controller.js b/src/controller/area.controller.js index ce0b6fd..6c671aa 100644 --- a/src/controller/area.controller.js +++ b/src/controller/area.controller.js @@ -102,4 +102,24 @@ module.exports = { next(error); } }, + + getAreaRowsByID: async (req, res, next) => { + const { id } = req.params; + + if (!id) { + res.status(400).send({ success: false, message: "Missing id param" }); + return; + } + + try { + const areaData = await Area.findById(id).populate("rows"); + if (!areaData) { + res.status(404).send({ success: false, message: "not found" }); + return; + } + res.send({ success: true, data: areaData.rows }); + } catch (error) { + next(error); + } + }, }; diff --git a/src/controller/area.router.js b/src/controller/area.router.js index e4c2bdd..15a4896 100644 --- a/src/controller/area.router.js +++ b/src/controller/area.router.js @@ -11,6 +11,11 @@ router.get("/all", controller.getAllArea); */ router.get("/:id", controller.getAreaByID); +/** + * @route /area/:id/rows + */ +router.get("/:id/rows", controller.getAreaRowsByID); + /** * @route /area/ */ 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/row.controller.js b/src/controller/row.controller.js index 77f9182..11c3479 100644 --- a/src/controller/row.controller.js +++ b/src/controller/row.controller.js @@ -102,4 +102,24 @@ module.exports = { next(error); } }, + + getRowBaysByID: async (req, res, next) => { + const { id } = req.params; + + if (!id) { + res.status(400).send({ success: false, message: "Missing id param" }); + return; + } + + try { + const rowData = await Row.findById(id).populate("bays"); + if (!rowData) { + res.status(404).send({ success: false, message: "not found" }); + return; + } + res.send({ success: true, data: rowData.bays }); + } catch (error) { + next(error); + } + }, }; diff --git a/src/controller/row.router.js b/src/controller/row.router.js index fbf91be..d2593e5 100644 --- a/src/controller/row.router.js +++ b/src/controller/row.router.js @@ -12,6 +12,11 @@ router.get("/all", controller.getAllRow); */ router.get("/:id", controller.getRowByID); +/** + * @route /row/:id/bays + */ +router.get("/:id/bays", controller.getRowBaysByID); + /** * @route /row/ */ 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/ */ diff --git a/src/controller/warehouse.controller.js b/src/controller/warehouse.controller.js index 469d2ff..53e27e9 100644 --- a/src/controller/warehouse.controller.js +++ b/src/controller/warehouse.controller.js @@ -124,4 +124,24 @@ module.exports = { next(error); } }, + + getWarehouseZonesByID: async (req, res, next) => { + const { id } = req.params; + + if (!id) { + res.status(400).send({ success: false, message: "Missing id param" }); + return; + } + + try { + const warehouseData = await Warehouse.findById(id).populate("zones"); + if (!warehouseData) { + res.status(404).send({ success: false, message: "not found" }); + return; + } + res.send({ success: true, data: warehouseData.zones }); + } catch (error) { + next(error); + } + }, }; diff --git a/src/controller/warehouse.router.js b/src/controller/warehouse.router.js index 8f6d565..776121a 100644 --- a/src/controller/warehouse.router.js +++ b/src/controller/warehouse.router.js @@ -12,6 +12,11 @@ router.get("/all", controller.getAllWarehouse); */ router.get("/:id", controller.getWarehouseByID); +/** + * @route /warehouse/:id/zones + */ +router.get("/:id/zones", controller.getWarehouseZonesByID); + /** * @route /warehouse/ */ diff --git a/src/controller/zone.controller.js b/src/controller/zone.controller.js index 1625d5b..7f0d1be 100644 --- a/src/controller/zone.controller.js +++ b/src/controller/zone.controller.js @@ -102,4 +102,24 @@ module.exports = { next(error); } }, + + getZoneAreasByID: async (req, res, next) => { + const { id } = req.params; + + if (!id) { + res.status(400).send({ success: false, message: "Missing id param" }); + return; + } + + try { + const zoneData = await Zone.findById(id).populate("areas"); + if (!zoneData) { + res.status(404).send({ success: false, message: "not found" }); + return; + } + res.send({ success: true, data: zoneData.areas }); + } catch (error) { + next(error); + } + }, }; diff --git a/src/controller/zone.router.js b/src/controller/zone.router.js index 3ea45f1..c0977a3 100644 --- a/src/controller/zone.router.js +++ b/src/controller/zone.router.js @@ -12,6 +12,11 @@ router.get("/all", controller.getAllZone); */ router.get("/:id", controller.getZoneByID); +/** + * @route /zone/:id/areas + */ +router.get("/:id/areas", controller.getZoneAreasByID); + /** * @route /zone/ */