diff --git a/src/controller/inventory.controller.js b/src/controller/inventory.controller.js index 1ba12ff..f88aa28 100644 --- a/src/controller/inventory.controller.js +++ b/src/controller/inventory.controller.js @@ -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); } - } + }, }; diff --git a/src/controller/inventory.router.js b/src/controller/inventory.router.js index d683ba1..facd7b7 100644 --- a/src/controller/inventory.router.js +++ b/src/controller/inventory.router.js @@ -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; diff --git a/src/controller/item.controller.js b/src/controller/item.controller.js index f17075b..055a622 100644 --- a/src/controller/item.controller.js +++ b/src/controller/item.controller.js @@ -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); + } + }, }; diff --git a/src/controller/item.router.js b/src/controller/item.router.js index 4882827..2ae4e0c 100644 --- a/src/controller/item.router.js +++ b/src/controller/item.router.js @@ -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 */ diff --git a/src/controller/sublevel.controller.js b/src/controller/sublevel.controller.js index 34f7ae4..ed08db7 100644 --- a/src/controller/sublevel.controller.js +++ b/src/controller/sublevel.controller.js @@ -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: [ { diff --git a/src/controller/warehouse.controller.js b/src/controller/warehouse.controller.js index ae89a7d..db8ea3d 100644 --- a/src/controller/warehouse.controller.js +++ b/src/controller/warehouse.controller.js @@ -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); + } + }, }; diff --git a/src/controller/warehouse.router.js b/src/controller/warehouse.router.js index 2711bb9..d804b65 100644 --- a/src/controller/warehouse.router.js +++ b/src/controller/warehouse.router.js @@ -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;