Added: Deleted by type and id
This commit is contained in:
@@ -10,6 +10,7 @@ const Sublevel = require("../models/Sublevel");
|
|||||||
const Inventory = require("../models/Inventory");
|
const Inventory = require("../models/Inventory");
|
||||||
const WidgetFamily = require("../models/WidgetFamily");
|
const WidgetFamily = require("../models/WidgetFamily");
|
||||||
const Item = require("../models/Item");
|
const Item = require("../models/Item");
|
||||||
|
const { deleteSubLevelTreeFromRoot } = require("./utils/sublevel");
|
||||||
|
|
||||||
const createWarehouse = async ({ name, address, specs, company_id }) => {
|
const createWarehouse = async ({ name, address, specs, company_id }) => {
|
||||||
if (!(name && address)) {
|
if (!(name && address)) {
|
||||||
@@ -251,20 +252,20 @@ const createWidgetFamilies = async (widgetFamilies, inventory, parent = undefine
|
|||||||
return widgetFamiliesData;
|
return widgetFamiliesData;
|
||||||
};
|
};
|
||||||
|
|
||||||
const getChildModel = (parentType) => {
|
const getLocationTypeModel = (type) => {
|
||||||
switch (parentType) {
|
switch (type) {
|
||||||
case "warehouse":
|
case "warehouse":
|
||||||
return Zone;
|
return Warehouse;
|
||||||
case "zone":
|
case "zone":
|
||||||
return Area;
|
return Zone;
|
||||||
case "area":
|
case "area":
|
||||||
return Row;
|
return Area;
|
||||||
case "row":
|
case "row":
|
||||||
return Bay;
|
return Row;
|
||||||
case "bay":
|
case "bay":
|
||||||
return Level;
|
return Bay;
|
||||||
case "level":
|
case "level":
|
||||||
return Sublevel;
|
return Level;
|
||||||
case "sublevel":
|
case "sublevel":
|
||||||
return Sublevel;
|
return Sublevel;
|
||||||
default:
|
default:
|
||||||
@@ -272,6 +273,26 @@ const getChildModel = (parentType) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const getChildType = (parentType) => {
|
||||||
|
switch (parentType) {
|
||||||
|
case "warehouse":
|
||||||
|
return "zone";
|
||||||
|
case "zone":
|
||||||
|
return "area";
|
||||||
|
case "area":
|
||||||
|
return "row";
|
||||||
|
case "row":
|
||||||
|
return "bay";
|
||||||
|
case "bay":
|
||||||
|
return "level";
|
||||||
|
case "level":
|
||||||
|
case "sublevel":
|
||||||
|
return "sublevel";
|
||||||
|
default:
|
||||||
|
throw new Error("Invalid model type");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
createWarehouseSchema: async (req, res, next) => {
|
createWarehouseSchema: async (req, res, next) => {
|
||||||
try {
|
try {
|
||||||
@@ -369,7 +390,7 @@ module.exports = {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
let childrenData = await getChildModel(type).find(query);
|
let childrenData = await getLocationTypeModel(getChildType(type)).find(query);
|
||||||
|
|
||||||
// populate locations to sublevel
|
// populate locations to sublevel
|
||||||
if (childrenData && ["level", "sublevel"].includes(type)) {
|
if (childrenData && ["level", "sublevel"].includes(type)) {
|
||||||
@@ -387,4 +408,22 @@ module.exports = {
|
|||||||
next(error);
|
next(error);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
deleteByIdAndLocationType: async (req, res, next) => {
|
||||||
|
const { id, type } = req.body;
|
||||||
|
let removedIDs;
|
||||||
|
try {
|
||||||
|
switch (type) {
|
||||||
|
case "sublevel":
|
||||||
|
removedIDs = await deleteSubLevelTreeFromRoot(id);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
removedIDs = await getLocationTypeModel(type).deleteOne({ _id: id });
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
res.send({ success: true, data: { removedIDs, deleted: { id, type } } });
|
||||||
|
} catch (error) {
|
||||||
|
next(error);
|
||||||
|
}
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -16,4 +16,9 @@ router.post("/create-inventory-schema", controller.createInventorySchema);
|
|||||||
*/
|
*/
|
||||||
router.post("/get-children-from-parent", controller.getChildrenFromParent);
|
router.post("/get-children-from-parent", controller.getChildrenFromParent);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @route /dashboard/location
|
||||||
|
*/
|
||||||
|
router.post("/delete-location", controller.deleteByIdAndLocationType);
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
|
|||||||
Reference in New Issue
Block a user