From 0c8608d0b6474ce08b7064bd3cfd2dcb5d83e2a0 Mon Sep 17 00:00:00 2001 From: Llewellyn D'souza Date: Thu, 17 Feb 2022 18:14:25 +0530 Subject: [PATCH 1/4] Fixed: sublevel queries and updates --- src/controller/dashboard.controller.js | 13 ++++++++++++- src/controller/sublevel.controller.js | 3 ++- src/controller/utils/sublevel.js | 2 +- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/controller/dashboard.controller.js b/src/controller/dashboard.controller.js index 545657f..54026de 100644 --- a/src/controller/dashboard.controller.js +++ b/src/controller/dashboard.controller.js @@ -356,7 +356,18 @@ module.exports = { const { id, type } = req.body; if (!id || !type) return res.send({ success: false, message: "Missing id or type" }); - const query = {}; + let query = {}; + + switch (type) { + case "level": + case "sublevel": + query = { $or: [{ main_level_id: id, parent_sublevel_id: id }] }; + break; + + default: + query[`${type}_id`] = id; + break; + } query[`${type}_id`] = id; const childrenData = await getChildModel(type).find(query); diff --git a/src/controller/sublevel.controller.js b/src/controller/sublevel.controller.js index 4c353a8..28e4846 100644 --- a/src/controller/sublevel.controller.js +++ b/src/controller/sublevel.controller.js @@ -31,6 +31,7 @@ module.exports = { * Create a sublevel */ createSubLevel: async (req, res, next) => { + console.log(req.body); const { name, type, specs, parent_id, parentIsLevel, positions } = req.body; if (!(name && type && parent_id && positions)) { @@ -70,7 +71,7 @@ module.exports = { res.status(404); return; } - req.send(sublevelData); + res.send(sublevelData); } catch (error) { next(error); } diff --git a/src/controller/utils/sublevel.js b/src/controller/utils/sublevel.js index 3e63a93..ce6cf75 100644 --- a/src/controller/utils/sublevel.js +++ b/src/controller/utils/sublevel.js @@ -58,7 +58,7 @@ const deleteSubLevelTreeFromRoot = async (root_sub_level_id) => { const addSublevelToParent = async (payload, parent_id, parentIsLevel) => { if (parentIsLevel) { // add sublevel to parent - const parentData = await Sublevel.findById(parent_id); + const parentData = await Level.findById(parent_id); parentData.sub_levels.push(payload); return await parentData.save(); } else { From 2a421c54f00444bb4ca713e1c8e280881a62ea87 Mon Sep 17 00:00:00 2001 From: Llewellyn D'souza Date: Fri, 18 Feb 2022 18:07:41 +0530 Subject: [PATCH 2/4] Fix: locations to sublevels --- src/controller/dashboard.controller.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/controller/dashboard.controller.js b/src/controller/dashboard.controller.js index 54026de..6933dff 100644 --- a/src/controller/dashboard.controller.js +++ b/src/controller/dashboard.controller.js @@ -370,7 +370,14 @@ module.exports = { } query[`${type}_id`] = id; - const childrenData = await getChildModel(type).find(query); + let childrenData = await getChildModel(type).find(query); + + // populate locations to sublevel + if (childrenData && ["level", "sublevel"].includes(type)) { + const parentData = type === "level" ? await Level.findById(id) : await Sublevel.findById(id); + childrenData = parentData && childrenData.map((t1) => ({ ...t1, ...parentData.sub_levels.find((t2) => t2.sub_level_id === t1._id) })); + } + res.send({ success: true, data: { parent: { id, type }, childrenData } }); } catch (error) { next(error); From 688d230513e6104ddd2065bce8acca509bf92881 Mon Sep 17 00:00:00 2001 From: Llewellyn D'souza Date: Fri, 18 Feb 2022 18:09:08 +0530 Subject: [PATCH 3/4] Added: null checks --- src/controller/dashboard.controller.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/controller/dashboard.controller.js b/src/controller/dashboard.controller.js index 6933dff..14aeadd 100644 --- a/src/controller/dashboard.controller.js +++ b/src/controller/dashboard.controller.js @@ -375,7 +375,8 @@ module.exports = { // populate locations to sublevel if (childrenData && ["level", "sublevel"].includes(type)) { const parentData = type === "level" ? await Level.findById(id) : await Sublevel.findById(id); - childrenData = parentData && childrenData.map((t1) => ({ ...t1, ...parentData.sub_levels.find((t2) => t2.sub_level_id === t1._id) })); + childrenData = + parentData && childrenData.map((t1) => ({ ...t1, positions: parentData.sub_levels?.find((t2) => t2.sub_level_id === t1._id)?.positions })); } res.send({ success: true, data: { parent: { id, type }, childrenData } }); From bc94ac028190b3662901907aed5fdc4ec153647d Mon Sep 17 00:00:00 2001 From: Llewellyn Dsouza Date: Sun, 27 Feb 2022 01:50:32 +0530 Subject: [PATCH 4/4] Update: fix query for level/sublevel --- src/controller/dashboard.controller.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/controller/dashboard.controller.js b/src/controller/dashboard.controller.js index 14aeadd..3b88f4b 100644 --- a/src/controller/dashboard.controller.js +++ b/src/controller/dashboard.controller.js @@ -368,7 +368,6 @@ module.exports = { query[`${type}_id`] = id; break; } - query[`${type}_id`] = id; let childrenData = await getChildModel(type).find(query);