Create sublevel and udpate sublevel details

This commit is contained in:
Llewellyn D'souza
2021-12-28 16:44:40 +05:30
parent 4cdc8f732e
commit 7a724b8a39
2 changed files with 26 additions and 29 deletions

View File

@@ -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);
}

View File

@@ -14,6 +14,6 @@ router.post("/", controller.createSubLevel);
/**
* @route /sublevel/
*/
router.patch("/:id", controller.updateSubLevelByID);
router.patch("/:id", controller.updateSubLevelDetailsByID);
module.exports = router;