diff --git a/src/controller/dashboard.controller.js b/src/controller/dashboard.controller.js index 545657f..3b88f4b 100644 --- a/src/controller/dashboard.controller.js +++ b/src/controller/dashboard.controller.js @@ -356,10 +356,28 @@ module.exports = { const { id, type } = req.body; if (!id || !type) return res.send({ success: false, message: "Missing id or type" }); - const query = {}; - query[`${type}_id`] = id; + 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; + } + + 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, positions: parentData.sub_levels?.find((t2) => t2.sub_level_id === t1._id)?.positions })); + } - const childrenData = await getChildModel(type).find(query); res.send({ success: true, data: { parent: { id, type }, childrenData } }); } catch (error) { next(error); diff --git a/src/controller/sublevel.controller.js b/src/controller/sublevel.controller.js index 1b7ee8f..65adda6 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)) {