validate positions
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
const Sublevel = require("../models/Sublevel");
|
||||
const mongoose = require("mongoose");
|
||||
const { addSublevelToParent, deleteSubLevelTreeFromRoot } = require("./utils/sublevel");
|
||||
const { addSublevelToParent, deleteSubLevelTreeFromRoot, validPositions } = require("./utils/sublevel");
|
||||
const { SubLevelTypes } = require("../config/constants");
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
@@ -32,11 +33,21 @@ module.exports = {
|
||||
createSubLevel: async (req, res, next) => {
|
||||
const { name, type, specs, parent_id, parentIsLevel, positions } = req.body;
|
||||
|
||||
if (!(name && type && parent_id)) {
|
||||
if (!(name && type && parent_id && positions)) {
|
||||
res.status(400).send("Missing params param");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!SubLevelTypes.includes(type)) {
|
||||
res.status(400).send("Invalid type");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!validPositions(positions)) {
|
||||
res.status(400).send("Invalid positions");
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const parentData = parentIsLevel ? { parent_current_depth: 0, parent_main_level_id: parent_id } : await Sublevel.findById(parent_id);
|
||||
|
||||
@@ -76,6 +87,11 @@ module.exports = {
|
||||
return;
|
||||
}
|
||||
|
||||
if (type && !SubLevelTypes.includes(type)) {
|
||||
res.status(400).send("Invalid type");
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const sublevelData = await Sublevel.findById(id);
|
||||
if (!sublevelData) {
|
||||
|
||||
@@ -95,10 +95,20 @@ const findAvailablePositions = (sublevelData) => {
|
||||
return LevelPositions.filter((pos) => !positionsOccupied.includes(pos));
|
||||
};
|
||||
|
||||
/**
|
||||
* Check if positions are valid positions
|
||||
* @param {string[]} positions An array of positions
|
||||
* @returns {boolean}
|
||||
*/
|
||||
const validPositions = (positions) => {
|
||||
return positions.every((position) => LevelPositions.includes(position));
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
addSublevelToParent,
|
||||
removeSublevelFromParent,
|
||||
deleteSubLevelTreeFromRoot,
|
||||
moveSublevel,
|
||||
findAvailablePositions,
|
||||
validPositions,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user