Merge pull request #19 from kfnawaz/feat/missing-apis
Feat: missing apis #1
This commit is contained in:
@@ -1,7 +1,15 @@
|
|||||||
const Inventory = require("../models/Inventory");
|
const Inventory = require("../models/Inventory");
|
||||||
|
const WidgetFamily = require("../models/WidgetFamily");
|
||||||
const { InventoryTypes } = require("../config/constants");
|
const { InventoryTypes } = require("../config/constants");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
/**
|
||||||
|
* Gets the Inventory types
|
||||||
|
*/
|
||||||
|
getInventoryTypes: async (req, res, next) => {
|
||||||
|
res.send({ success: true, data: InventoryTypes });
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the Inventory data by `id`
|
* Gets the Inventory data by `id`
|
||||||
*/
|
*/
|
||||||
@@ -162,6 +170,11 @@ module.exports = {
|
|||||||
res.status(404);
|
res.status(404);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (const inventory of inventoryData) {
|
||||||
|
inventory["widgetFamilies"] = await WidgetFamily.find({ inventory: inventory._id });
|
||||||
|
}
|
||||||
|
|
||||||
res.send({ success: true, data: inventoryData });
|
res.send({ success: true, data: inventoryData });
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
next(error);
|
next(error);
|
||||||
|
|||||||
@@ -11,6 +11,11 @@ router.post("/", controller.createInventory);
|
|||||||
*/
|
*/
|
||||||
router.patch("/:id", controller.updateInventoryByID);
|
router.patch("/:id", controller.updateInventoryByID);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @route /inventory/types
|
||||||
|
*/
|
||||||
|
router.get("/types", controller.getInventoryTypes);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @route /inventory/filter-by-type
|
* @route /inventory/filter-by-type
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -142,15 +142,24 @@ module.exports = {
|
|||||||
* Gets the Items data by filter
|
* Gets the Items data by filter
|
||||||
*/
|
*/
|
||||||
getItemsByFilter: async (req, res, next) => {
|
getItemsByFilter: async (req, res, next) => {
|
||||||
let { family, type, page, perPage } = req.query;
|
let { family, type, inventory, page, perPage } = req.query;
|
||||||
page = page ? parseInt(page) : 0;
|
page = page ? parseInt(page) : 0;
|
||||||
perPage = perPage ? parseInt(perPage) : 10;
|
perPage = perPage ? parseInt(perPage) : 10;
|
||||||
|
const inventoryFilters = {};
|
||||||
let inventories;
|
let inventories;
|
||||||
let widgetFamilies;
|
let widgetFamilies;
|
||||||
let itemFilters;
|
let itemFilters;
|
||||||
try {
|
try {
|
||||||
if (type && InventoryTypes.includes(type)) {
|
if (type && InventoryTypes.includes(type)) {
|
||||||
inventories = await Inventory.find({ type });
|
inventoryFilters["type"] = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (inventory) {
|
||||||
|
inventoryFilters["_id"] = inventory;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Object.keys(inventoryFilters).length > 0) {
|
||||||
|
inventories = await Inventory.find(inventoryFilters);
|
||||||
}
|
}
|
||||||
|
|
||||||
const widgetFamilyFilters = [];
|
const widgetFamilyFilters = [];
|
||||||
|
|||||||
@@ -26,6 +26,29 @@ module.exports = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the WidgetFamily children data by `id`
|
||||||
|
*/
|
||||||
|
getWidgetFamilyChildrenByID: async (req, res, next) => {
|
||||||
|
const { id } = req.params;
|
||||||
|
|
||||||
|
if (!id) {
|
||||||
|
res.status(400).send("Missing id param");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const widgetFamilyData = await WidgetFamily.find({ parent: id });
|
||||||
|
if (!widgetFamilyData) {
|
||||||
|
res.status(404).send({ success: false, error: "Widget not found" });
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
res.send({ success: true, data: widgetFamilyData });
|
||||||
|
} catch (error) {
|
||||||
|
next(error);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a WidgetFamily
|
* Create a WidgetFamily
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -21,4 +21,9 @@ router.get("/search-by-inventory", controller.getWidgetFamilyByInventory);
|
|||||||
*/
|
*/
|
||||||
router.get("/:id", controller.getWidgetFamilyByID);
|
router.get("/:id", controller.getWidgetFamilyByID);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @route /widgetFamily/:id/children
|
||||||
|
*/
|
||||||
|
router.get("/:id/children", controller.getWidgetFamilyChildrenByID);
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
|
|||||||
Reference in New Issue
Block a user