This commit is contained in:
m0n02hz
2022-03-04 01:58:03 +05:30
7 changed files with 63 additions and 27 deletions

View File

@@ -1,9 +1,7 @@
const mongoose = require("mongoose");
const Inventory = require("../models/Inventory");
const WidgetFamily = require("../models/WidgetFamily");
const { InventoryTypes } = require("../config/constants");
const { S3 } = require("./../config/aws");
module.exports = {
/**
@@ -191,31 +189,16 @@ module.exports = {
}
},
/**
* Fetch all available inventories
*/
getInventories: async (req, res, next) => {
let { page, perPage } = req.query;
page = page ? parseInt(page) : 0;
perPage = perPage ? parseInt(perPage) : 10;
deleteInventoryByID: async (req, res, next) => {
const { id } = req.params;
if (!id || !mongoose.isValidObjectId(id)) {
res.status(400).send({ success: false, error: "Missing/Invalid inventory id" });
}
try {
const inventoryData = await Inventory.find(
{ },
{ id: 1, name: 1, type: 1 },
{ skip: parseInt(page) * parseInt(perPage), limit: parseInt(perPage) }
);
if (!inventoryData) {
res.status(404);
return;
}
for (const inventory of inventoryData) {
inventory["widgetFamilies"] = await WidgetFamily.find({ inventory: inventory._id });
}
res.send({ success: true, data: inventoryData });
await Inventory.deleteOne({ _id: id });
res.send({ success: true, error: "Inventory Successfully deleted" });
} catch (error) {
next(error);
}
}
},
};

View File

@@ -37,4 +37,9 @@ router.get("/all", controller.getInventories);
*/
router.get("/:id", controller.getInventoryByID);
/**
* @route /inventory/:id
*/
router.delete("/:id", controller.deleteInventoryByID);
module.exports = router;

View File

@@ -179,6 +179,18 @@ module.exports = {
}
}
// Policies Metadata
if (!req.body.policiesMetadata) {
req.body.policiesMetadata = {};
}
itemData.policiesMetadata = {
underStockLevelCount: req.body.policiesMetadata.underStockLevelCount || itemData.policiesMetadata.underStockLevelCount,
overStockLevelCount: req.body.policiesMetadata.overStockLevelCount || itemData.policiesMetadata.overStockLevelCount,
alertStockLevelCount: req.body.policiesMetadata.alertStockLevelCount || itemData.policiesMetadata.alertStockLevelCount,
reorderStockLevelCount: req.body.policiesMetadata.reorderStockLevelCount || itemData.policiesMetadata.reorderStockLevelCount,
};
await itemData.save();
if (itemData.images) {
@@ -562,4 +574,17 @@ module.exports = {
}
res.send({ success: true, data: item });
},
deleteItemByID: async (req, res, next) => {
const { id } = req.params;
if (!id || !mongoose.isValidObjectId(id)) {
res.status(400).send({ success: false, error: "Missing/Invalid item ids" });
}
try {
await Item.deleteOne({ _id: id });
res.send({ success: true, error: "Item Successfully deleted" });
} catch (error) {
next(error);
}
},
};

View File

@@ -20,10 +20,15 @@ router.post("/:id/image", upload.single("image"), controller.addImageToItem);
router.delete("/:id/image/:image_id", controller.removeImageFromItem);
/**
* @route /item/
* @route /item/:id
*/
router.patch("/:id", upload.any("images"), controller.updateItemByID);
/**
* @route /item/:id
*/
router.delete("/:id", controller.deleteItemByID);
/**
* @route /item/filter
*/

View File

@@ -212,7 +212,7 @@ module.exports = {
totem_label: [
`Z${getLabelTerm(resultItem.zone._id)}-A${getLabelTerm(resultItem.area._id)}-R${getLabelTerm(resultItem.row._id)}-B${getLabelTerm(
resultItem.bay._id
)}}`,
)}`,
],
location_data: [
{

View File

@@ -199,4 +199,17 @@ module.exports = {
await warehouse.save();
res.send({ success: true, data: warehouse });
},
deleteWarehouseByID: async (req, res, next) => {
const { id } = req.params;
if (!id || !mongoose.isValidObjectId(id)) {
res.status(400).send({ success: false, error: "Missing/Invalid warehouse id" });
}
try {
await Warehouse.deleteOne({ _id: id });
res.send({ success: true, error: "Warehouse Successfully deleted" });
} catch (error) {
next(error);
}
},
};

View File

@@ -28,4 +28,9 @@ router.post("/", upload.single("image"), controller.createWarehouse);
*/
router.patch("/:id", upload.single("image"), controller.updateWarehouseByID);
/**
* @route /inventory/:id
*/
router.delete("/:id", controller.deleteWarehouseByID);
module.exports = router;