diff --git a/src/controller/sublevel.controller.js b/src/controller/sublevel.controller.js index 97dc2d3..94c9eac 100644 --- a/src/controller/sublevel.controller.js +++ b/src/controller/sublevel.controller.js @@ -1,4 +1,4 @@ -const SubLevel = require("../models/SubLevel"); +const SubLevel = require("../models/Sublevel"); const mongoose = require("mongoose"); module.exports = { @@ -29,27 +29,33 @@ module.exports = { * Create a sublevel */ createSubLevel: async (req, res, next) => { - const { name, type, specs, main_level_id } = req.body; + const { name, type, specs, parent_sublevel_id, main_level_id } = req.body; - if (!(name && type && main_level_id)) { + if (!(name && type && parent_sublevel_id)) { res.status(400).send("Missing params param"); return; } try { - const levelData = new SubLevel({ + const { parent_current_depth, parent_main_level_id } = parent_sublevel_id + ? await SubLevel.findById(parent_sublevel_id) + : { current_depth: 1, p_main_level_id: main_level_id }; + + const sublevelData = new SubLevel({ name, type: type, specs, - main_level_id: mongoose.Types.ObjectId(main_level_id), + main_level_id: parent_main_level_id, + current_depth: parent_current_depth + 1, + parent_sublevel_id: mongoose.Types.ObjectId(parent_sublevel_id), }); - await levelData.save(); - if (!levelData) { + await sublevelData.save(); + if (!sublevelData) { res.status(404); return; } - req.send(levelData); + req.send(sublevelData); } catch (error) { next(error); } @@ -58,37 +64,28 @@ module.exports = { /** * Update a sublevels' detail */ - updateSubLevelByID: async (req, res, next) => { + updateSubLevelDetailsByID: async (req, res, next) => { + const { name, type, specs } = req.body; const { id } = req.params; - if (!id) { - res.status(400).send("Missing id param"); - return; - } - - const { name, type, specs, main_level_id } = req.body; - - if (!(name || type || specs || main_level_id)) { - res.status(400).send("Missing data in body"); + if (!(name || type || specs)) { + res.status(400).send("Missing params param"); return; } try { - const levelData = await SubLevel.findById(id); - if (!levelData) { + const sublevelData = await SubLevel.findById(id); + if (!sublevelData) { res.status(404); return; } - if (name) levelData.name = name; - if (type) levelData.type = type; - if (specs) levelData.specs = specs; - if (main_level_id) { - levelData.main_level_id = mongoose.Types.ObjectId(main_level_id); - } + if (name) sublevelData.name = name; + if (type) sublevelData.type = type; + if (specs) sublevelData.specs = specs; - await levelData.save(); - req.send(levelData); + const newData = await sublevelData.save(); + req.send(newData); } catch (error) { next(error); } diff --git a/src/controller/sublevel.router.js b/src/controller/sublevel.router.js index 2714fd2..8ca2863 100644 --- a/src/controller/sublevel.router.js +++ b/src/controller/sublevel.router.js @@ -14,6 +14,6 @@ router.post("/", controller.createSubLevel); /** * @route /sublevel/ */ -router.patch("/:id", controller.updateSubLevelByID); +router.patch("/:id", controller.updateSubLevelDetailsByID); module.exports = router;