Update: add sublevel to parent

This commit is contained in:
Llewellyn D'souza
2021-12-29 17:16:22 +05:30
parent 812c691bef
commit fad703f0b7
3 changed files with 26 additions and 3 deletions

View File

@@ -1,5 +1,6 @@
const Sublevel = require("../models/Sublevel");
const mongoose = require("mongoose");
const { addSublevelToParent } = require("./utils/sublevel");
module.exports = {
/**
@@ -29,7 +30,7 @@ module.exports = {
* Create a sublevel
*/
createSubLevel: async (req, res, next) => {
const { name, type, specs, parent_id, parentIsLevel } = req.body;
const { name, type, specs, parent_id, parentIsLevel, positions } = req.body;
if (!(name && type && parent_id)) {
res.status(400).send("Missing params param");
@@ -41,7 +42,7 @@ module.exports = {
? { parent_current_depth: 0, parent_main_level_id: parent_id }
: await Sublevel.findById(parent_id);
const sublevelData = new Sublevel({
const sublevelData = Sublevel.create({
name,
type: type,
specs,
@@ -50,6 +51,8 @@ module.exports = {
parent_sublevel_id: mongoose.Types.ObjectId(parent_id),
});
await addSublevelToParent({ type, positions, sub_level_id: sublevelData._id.toString() }, parent_id, parentIsLevel);
await sublevelData.save();
if (!sublevelData) {
res.status(404);

View File

@@ -44,3 +44,23 @@ exports.deleteSubLevelTreeFromRoot = async (root_sub_level_id) => {
console.log("Deleting sub-level tree", { sub_level_ids });
return sub_level_ids;
};
/**
* Add the sublevel data to the parent document
* @param {{type: string, positions: string[], sub_level_id: string}} payload The sublevel data
* @param {string} parent_id The parent level ID
* @param {boolean} parentIsLevel Is parent a level?
*/
exports.addSublevelToParent = async (payload, parent_id, parentIsLevel) => {
if (parentIsLevel) {
// add sublevel to parent
const parentData = await Sublevel.findById(parent_id);
parentData.sub_levels.push(payload);
return await parentData.save();
} else {
// add sublevel to sublevel
const parentData = await Sublevel.findById(parent_id);
parentData.sub_levels.push(payload);
return await parentData.save();
}
};

View File

@@ -29,7 +29,7 @@ const schema = new mongoose.Schema(
type: String,
enum: SubLevelTypes,
},
postition: [
postitions: [
{
type: String,
enum: LevelPositions,