diff --git a/src/controller/area.controller.js b/src/controller/area.controller.js index 3c6e02a..32ee57b 100644 --- a/src/controller/area.controller.js +++ b/src/controller/area.controller.js @@ -19,7 +19,7 @@ module.exports = { res.status(404); return; } - req.send(areaData); + res.send(areaData); } catch (error) { next(error); } @@ -49,7 +49,7 @@ module.exports = { res.status(404); return; } - req.send(areaData); + res.send(areaData); } catch (error) { next(error); } @@ -86,7 +86,7 @@ module.exports = { if (zone_id) areaData.zone_id = mongoose.Types.ObjectId(zone_id); await areaData.save(); - req.send(areaData); + res.send(areaData); } catch (error) { next(error); } diff --git a/src/controller/bay.controller.js b/src/controller/bay.controller.js index 3168b4f..a89b484 100644 --- a/src/controller/bay.controller.js +++ b/src/controller/bay.controller.js @@ -19,7 +19,7 @@ module.exports = { res.status(404); return; } - req.send(bayData); + res.send(bayData); } catch (error) { next(error); } @@ -50,7 +50,7 @@ module.exports = { res.status(404); return; } - req.send(bayData); + res.send(bayData); } catch (error) { next(error); } @@ -88,7 +88,7 @@ module.exports = { if (row_id) bayData.row_id = mongoose.Types.ObjectId(row_id); await bayData.save(); - req.send(bayData); + res.send(bayData); } catch (error) { next(error); } diff --git a/src/controller/company.controller.js b/src/controller/company.controller.js index 76d780d..ed4cf46 100644 --- a/src/controller/company.controller.js +++ b/src/controller/company.controller.js @@ -18,7 +18,7 @@ module.exports = { res.status(404); return; } - req.send(companyData); + res.send(companyData); } catch (error) { next(error); } @@ -48,7 +48,7 @@ module.exports = { res.status(404); return; } - req.send(companyData); + res.send(companyData); } catch (error) { next(error); } @@ -85,7 +85,7 @@ module.exports = { if (business_info) companyData.business_info = business_info; await companyData.save(); - req.send(companyData); + res.send(companyData); } catch (error) { next(error); } diff --git a/src/controller/dashboard.controller.js b/src/controller/dashboard.controller.js index 288f5b2..bfa8a4b 100644 --- a/src/controller/dashboard.controller.js +++ b/src/controller/dashboard.controller.js @@ -60,7 +60,7 @@ const createAreas = async (areas, zone) => { await areaObj.save(); if (area.rows) { - areaObj.rows = await createRows(zone.areas, area); + areaObj.rows = await createRows(area.rows, areaObj); } areasArr.push(areaObj); } @@ -80,7 +80,7 @@ const createRows = async (rows, area) => { await rowObj.save(); if (row.bays) { - rowObj.bays = await createBays(row.bays, row); + rowObj.bays = await createBays(row.bays, rowObj); } rowsArr.push(rowObj); } @@ -101,7 +101,7 @@ const createBays = async (bays, row) => { await bayObj.save(); if (bay.levels) { - bayObj.levels = await createLevels(bay.levels, bay); + bayObj.levels = await createLevels(bay.levels, bayObj); } baysArr.push(bayObj); } @@ -120,21 +120,16 @@ const createLevels = async (levels, bay) => { }); await levelObj.save(); - if (level.levels) { - levelObj.subLevels = await createSublevels(level.subLevels, level); + if (level.subLevels) { + levelObj.sub_levels = await createSublevels(level.subLevels, levelObj); } levelsArr.push(levelObj); } return levelsArr; }; -const createSublevels = async ( - subLevels, - level, - parent = undefined, - depth = 0 -) => { - const subLevelsArr = []; +const createSublevels = async (subLevels, level, parent = undefined, depth = 0) => { + const sub_levels_list = []; for (const subLevel of subLevels) { const subLevelObj = await Sublevel.create({ name: subLevel.name, @@ -142,33 +137,30 @@ const createSublevels = async ( specs: subLevel.specs, main_level_id: level._id, current_depth: depth, - parent_subLevel_id: parent ? parent._id : undefined, + parent_sublevel_id: parent ? parent._id : undefined, has_inventory: subLevel.has_inventory, - inventory: subLevel.inventory, + preferred_inventory: subLevel.preferred_inventory, }); - if (subLevel.sub_levels) { - const subSubLevels = await createSublevels( - subLevel.sub_levels, - level, - subLevelObj, - depth + 1 - ); + const sub_levels = { + positions: subLevel.positions, + type: subLevel.type, + sub_level_id: subLevelObj._id, + }; + sub_levels_list.push(sub_levels); - subLevelObj.sub_levels = subSubLevels.map((_) => { - return { - type: _.type, - depth: _.depth, - sub_level_id: _._id, - }; - }); + if (depth > 0 && parent) { + parent.sub_levels = parent.sub_levels.concat(sub_levels); - await subLevelObj.save(); + await parent.save(); } - subLevelsArr.push(subLevelObj); + if (subLevel.sub_levels) { + subLevelObj.sub_levels = await createSublevels(subLevel.sub_levels, level, subLevelObj, depth + 1); + await subLevelObj.save(); + } } - return subLevelsArr; + return sub_levels_list; }; const createInventory = async ({ name, type }) => { @@ -212,7 +204,7 @@ const createItems = async (items, material) => { const createMaterials = async (materials, inventory, parent = undefined) => { const materialsData = []; - for (const materialData of materials) { + for (const { name, family, items } of materials) { const material = await Material.create({ name, parent, @@ -220,23 +212,19 @@ const createMaterials = async (materials, inventory, parent = undefined) => { }); let materialFamily; - if (materialData.family) { - materialFamily = await createMaterials( - materialData.family, - inventory, - material - ); + if (family) { + materialFamily = await createMaterials(family, inventory, material); } - let items; - if (materialData.items) { - items = await createItems(materialData.items, material); + let itemsList; + if (items) { + itemsList = await createItems(items, material); } materialsData.push({ material, family: materialFamily, - items, + items: itemsList, }); } @@ -265,8 +253,8 @@ module.exports = { } warehouseSchema.warehouse = warehouse; - if (!req.body.warehouse.zones) { - const zones = createZones(req.body.warehouse.zones, warehouse); + if (req.body.warehouse.zones !== undefined && Array.isArray(req.body.warehouse.zones)) { + const zones = await createZones(req.body.warehouse.zones, warehouse); if (!zones) { res.status(400).send({ success: false, @@ -302,13 +290,10 @@ module.exports = { }); return; } - inventorySchema.inventory = inventory; + inventorySchema.inventory = inventory.toObject(); if (req.body.inventory.materials) { - const materials = createMaterials( - req.body.inventory.materials, - inventory - ); + const materials = await createMaterials(req.body.inventory.materials, inventory); if (!materials) { res.status(400).send({ success: false, diff --git a/src/controller/index.js b/src/controller/index.js index b8183d3..71c055c 100644 --- a/src/controller/index.js +++ b/src/controller/index.js @@ -13,6 +13,9 @@ const rowRouter = require("./row.router"); const levelRouter = require("./level.router"); const sublevelRouter = require("./sublevel.router"); const dashboardRouter = require("./dashboard.router"); +const inventoryRouter = require("./inventory.router"); +const materialRouter = require("./material.router"); +const itemRouter = require("./item.router"); router.use("/user-role", AuthenticateMiddleware, userRoleRouter); router.use("/user-permission", AuthenticateMiddleware, userPermissionRouter); @@ -26,13 +29,16 @@ router.use("/row", rowRouter); router.use("/level", levelRouter); router.use("/sublevel", sublevelRouter); router.use("/dashboard", dashboardRouter); +router.use("/inventory", inventoryRouter); +router.use("/material", materialRouter); +router.use("/item", itemRouter); router.get("/", (req, res) => { res.send({ success: true, message: "Hello world" }); }); router.use(function (err, req, res, next) { - console.error(err.stack); + console.error(err.message, err.stack); res.status(500).send({ success: false, error: `Error: ${err.message}` }); }); diff --git a/src/controller/inventory.controller.js b/src/controller/inventory.controller.js index 53d857b..93b6977 100644 --- a/src/controller/inventory.controller.js +++ b/src/controller/inventory.controller.js @@ -19,7 +19,7 @@ module.exports = { res.status(404); return; } - req.send({ success: true, data: inventoryData }); + res.send({ success: true, data: inventoryData }); } catch (error) { next(error); } @@ -47,7 +47,7 @@ module.exports = { res.status(404); return; } - req.send({ success: true, data: inventoryData }); + res.send({ success: true, data: inventoryData }); } catch (error) { next(error); } @@ -82,7 +82,7 @@ module.exports = { if (type) inventoryData.type = type; await inventoryData.save(); - req.send({ success: true, data: inventoryData }); + res.send({ success: true, data: inventoryData }); } catch (error) { next(error); } @@ -92,11 +92,11 @@ module.exports = { */ getInventoryByType: async (req, res, next) => { let { type, page, perPage } = req.query; - page = page || 0; - perPage = perPage || 10; + page = page ? parseInt(page) : 0; + perPage = perPage ? parseInt(perPage) : 10; if (!type || !InventoryTypes.includes(type)) { - res.status(400).send("Missing/Invalid type param"); + res.status(400).send({ success: false, error: "Missing/Invalid type param" }); return; } @@ -104,13 +104,13 @@ module.exports = { const inventoryData = await Inventory.find( { type: type }, { id: 1, name: 1, type: 1 }, - { skip: page * perPage, limit: perPage } + { skip: parseInt(page) * parseInt(perPage), limit: parseInt(perPage) } ); if (!inventoryData) { res.status(404); return; } - req.send({ success: true, data: inventoryData }); + res.send({ success: true, data: inventoryData }); } catch (error) { next(error); } diff --git a/src/controller/inventory.router.js b/src/controller/inventory.router.js index a46a984..f90000a 100644 --- a/src/controller/inventory.router.js +++ b/src/controller/inventory.router.js @@ -1,11 +1,6 @@ const router = require("express").Router(); const controller = require("./inventory.controller"); -/** - * @route /inventory/:id - */ -router.get("/:id", controller.getInventoryByID); - /** * @route /inventory/ */ @@ -21,4 +16,9 @@ router.patch("/:id", controller.updateInventoryByID); */ router.get("/filter-by-type", controller.getInventoryByType); +/** + * @route /inventory/:id + */ +router.get("/:id", controller.getInventoryByID); + module.exports = router; diff --git a/src/controller/item.controller.js b/src/controller/item.controller.js index 9820cad..a1a3e70 100644 --- a/src/controller/item.controller.js +++ b/src/controller/item.controller.js @@ -22,7 +22,7 @@ module.exports = { res.status(404); return; } - req.send({ success: true, data: itemData }); + res.send({ success: true, data: itemData }); } catch (error) { next(error); } @@ -34,7 +34,7 @@ module.exports = { createItem: async (req, res, next) => { let material; if (req.body.materialId && mongoose.isValidObjectId(req.body.materialId)) { - material = await Material.findById(material); + material = await Material.findById(req.body.materialId); } const item = { commonName: req.body.commonName, @@ -50,12 +50,14 @@ module.exports = { countPerPallet: req.body.countPerPallet, countPerPalletPackage: req.body.countPerPalletPackage, customAttributes: req.body.customAttributes, - material, + material: material, }; - if (Object.values(item).every((_) => _)) { - res.status(400).send("Missing params param"); - return; + for (const key of Object.keys(item)) { + if (item[key] === undefined) { + res.status(400).send({ success: false, error: `Missing required param: "${key}"` }); + return; + } } try { @@ -66,7 +68,7 @@ module.exports = { res.status(404); return; } - req.send({ success: true, data: itemData }); + res.send({ success: true, data: itemData }); } catch (error) { next(error); } @@ -77,6 +79,10 @@ module.exports = { */ updateItemByID: async (req, res, next) => { const { id } = req.params; + let material; + if (req.body.materialId && mongoose.isValidObjectId(req.body.materialId)) { + material = await Material.findById(req.body.materialId); + } if (!id) { res.status(400).send("Missing id param"); @@ -97,6 +103,7 @@ module.exports = { countPerPallet: req.body.countPerPallet, countPerPalletPackage: req.body.countPerPalletPackage, customAttributes: req.body.customAttributes, + material: material, }; try { @@ -113,7 +120,7 @@ module.exports = { } await itemData.save(); - req.send({ success: true, data: itemData }); + res.send({ success: true, data: itemData }); } catch (error) { next(error); } @@ -124,8 +131,8 @@ module.exports = { */ getItemsByFilter: async (req, res, next) => { let { family, type, page, perPage } = req.query; - page = page || 0; - perPage = perPage || 10; + page = page ? parseInt(page) : 0; + perPage = perPage ? parseInt(perPage) : 10; let inventories; let materials; let itemFilters; @@ -165,6 +172,7 @@ module.exports = { formalName: 1, description: 1, manufacturer: 1, + material: 1, size: 1, color: 1, type: 1, @@ -176,12 +184,12 @@ module.exports = { customAttributes: 1, }, { skip: page * perPage, limit: perPage } - ); + ).populate({ path: "material" }); if (!itemData) { res.status(404); return; } - req.send({ success: true, data: itemData }); + res.send({ success: true, data: itemData }); } catch (error) { next(error); } diff --git a/src/controller/item.router.js b/src/controller/item.router.js index fa135f0..ec27913 100644 --- a/src/controller/item.router.js +++ b/src/controller/item.router.js @@ -1,11 +1,6 @@ const router = require("express").Router(); const controller = require("./item.controller"); -/** - * @route /item/:id - */ -router.get("/:id", controller.getItemByID); - /** * @route /item/ */ @@ -21,4 +16,9 @@ router.patch("/:id", controller.updateItemByID); */ router.get("/filter", controller.getItemsByFilter); +/** + * @route /item/:id + */ +router.get("/:id", controller.getItemByID); + module.exports = router; diff --git a/src/controller/level.controller.js b/src/controller/level.controller.js index 60f1586..d2976ac 100644 --- a/src/controller/level.controller.js +++ b/src/controller/level.controller.js @@ -19,7 +19,7 @@ module.exports = { res.status(404); return; } - req.send(levelData); + res.send(levelData); } catch (error) { next(error); } @@ -49,7 +49,7 @@ module.exports = { res.status(404); return; } - req.send(levelData); + res.send(levelData); } catch (error) { next(error); } @@ -86,7 +86,7 @@ module.exports = { if (bay_id) levelData.bay_id = mongoose.Types.ObjectId(bay_id); await levelData.save(); - req.send(levelData); + res.send(levelData); } catch (error) { next(error); } diff --git a/src/controller/material.controller.js b/src/controller/material.controller.js index b6ed670..393e4b4 100644 --- a/src/controller/material.controller.js +++ b/src/controller/material.controller.js @@ -20,7 +20,7 @@ module.exports = { res.status(404); return; } - req.send({ success: true, data: materialData }); + res.send({ success: true, data: materialData }); } catch (error) { next(error); } @@ -35,7 +35,7 @@ module.exports = { try { let parent; if (parentId && mongoose.isValidObjectId(parentId)) { - parent = await Material.findById(parent); + parent = await Material.findById(parentId); } else if (parentId && !mongoose.isValidObjectId(parentId)) { res.status(400).send("Invalid params parentId"); return; @@ -60,7 +60,7 @@ module.exports = { res.status(404); return; } - req.send({ success: true, data: materialData }); + res.send({ success: true, data: materialData }); } catch (error) { next(error); } @@ -97,7 +97,7 @@ module.exports = { let parent; if (parentId && mongoose.isValidObjectId(parentId)) { - parent = await Material.findById(parent); + parent = await Material.findById(parentId); materialData.parent = parent; } else if (parentId && !mongoose.isValidObjectId(parentId)) { res.status(400).send("Invalid params parentId"); @@ -108,13 +108,13 @@ module.exports = { if (inventoryId && mongoose.isValidObjectId(inventoryId)) { inventory = await Inventory.findById(inventoryId); materialData.inventory = inventory; - } else { + } else if (inventoryId && !mongoose.isValidObjectId(inventoryId)) { res.status(400).send("Invalid params inventoryId"); return; } await materialData.save(); - req.send({ success: true, data: materialData }); + res.send({ success: true, data: materialData }); } catch (error) { next(error); } @@ -124,8 +124,8 @@ module.exports = { */ getMaterialByInventory: async (req, res, next) => { let { inventory, page, perPage } = req.query; - page = page || 0; - perPage = perPage || 10; + page = page ? parseInt(page) : 0; + perPage = perPage ? parseInt(perPage) : 0; if (!inventory || !mongoose.isValidObjectId(inventory)) { res.status(400).send("Missing inventory param"); @@ -144,7 +144,7 @@ module.exports = { res.status(404); return; } - req.send({ success: true, data: materialData }); + res.send({ success: true, data: materialData }); } catch (error) { next(error); } diff --git a/src/controller/material.router.js b/src/controller/material.router.js index 09fc561..6760fff 100644 --- a/src/controller/material.router.js +++ b/src/controller/material.router.js @@ -1,11 +1,6 @@ const router = require("express").Router(); const controller = require("./material.controller"); -/** - * @route /material/:id - */ -router.get("/:id", controller.getMaterialByID); - /** * @route /material/ */ @@ -21,4 +16,9 @@ router.patch("/:id", controller.updateMaterialByID); */ router.get("/search-by-inventory", controller.getMaterialByInventory); +/** + * @route /material/:id + */ +router.get("/:id", controller.getMaterialByID); + module.exports = router; diff --git a/src/controller/row.controller.js b/src/controller/row.controller.js index 780f299..62d48ad 100644 --- a/src/controller/row.controller.js +++ b/src/controller/row.controller.js @@ -19,7 +19,7 @@ module.exports = { res.status(404); return; } - req.send(rowData); + res.send(rowData); } catch (error) { next(error); } @@ -49,7 +49,7 @@ module.exports = { res.status(404); return; } - req.send(rowData); + res.send(rowData); } catch (error) { next(error); } @@ -86,7 +86,7 @@ module.exports = { if (area_id) rowData.area_id = mongoose.Types.ObjectId(area_id); await rowData.save(); - req.send(rowData); + res.send(rowData); } catch (error) { next(error); } diff --git a/src/controller/sublevel.controller.js b/src/controller/sublevel.controller.js index a62b36b..6644eae 100644 --- a/src/controller/sublevel.controller.js +++ b/src/controller/sublevel.controller.js @@ -60,7 +60,7 @@ module.exports = { main_level_id: parent_main_level_id, current_depth: parent_current_depth + 1, parent_sublevel_id: mongoose.Types.ObjectId(parent_id), - preffered_inventory: [], + preferred_inventory: [], }); await addSublevelToParent({ type, positions, sub_level_id: sublevelData._id.toString() }, parent_id, parentIsLevel); @@ -129,7 +129,7 @@ module.exports = { }, /** - * Add preffered_inventory to a sublevel + * Add preferred_inventory to a sublevel */ addInventory: async (req, res, next) => { const { id, inventory } = req.body; @@ -144,9 +144,9 @@ module.exports = { return; } try { - sublevelData.preffered_inventory.push(...inventory); + sublevelData.preferred_inventory.push(...inventory); await sublevelData.save(); - res.send({ success: true, data: sublevelData.preffered_inventory }); + res.send({ success: true, data: sublevelData.preferred_inventory }); } catch (err) { next(err); } diff --git a/src/controller/user.controller.js b/src/controller/user.controller.js index 1d704f0..f52323a 100644 --- a/src/controller/user.controller.js +++ b/src/controller/user.controller.js @@ -3,11 +3,7 @@ const jwt = require("jsonwebtoken"); const mongoose = require("mongoose"); const User = require("./../models/User"); -const { - JWT_SECRET, - JWT_REFRESH_EXPIRY_TIME, - JWT_ACCESS_EXPIRY_TIME, -} = require("./../config/env"); +const { JWT_SECRET, JWT_REFRESH_EXPIRY_TIME, JWT_ACCESS_EXPIRY_TIME } = require("./../config/env"); const UserRole = require("../models/UserRole"); const UserPermission = require("../models/UserPermission"); @@ -24,12 +20,11 @@ const createRefreshToken = (id) => { }; const getValidIds = async (ids, model) => { - const verifiedIds = ids.filter((permission) => - mongoose.isValidObjectId(permission) - ); + if (!ids) return []; + const verifiedIds = ids.filter((permission) => mongoose.isValidObjectId(permission)); const verifiedObjects = await model .find({ - id: { $in: verifiedIds }, + _id: { $in: verifiedIds }, }) .select({ _id: 1 }); return verifiedObjects.map((_) => _._id); @@ -84,40 +79,48 @@ module.exports = { }, addUserAccessControl: async (req, res, next) => { - const { user, roles, permissions } = req.body; + const { user } = req.params; + const { roles, permissions } = req.body; if (!mongoose.isValidObjectId(user)) { throw new Error(`invalid format for user id field`); } - const verifiedRoleIds = await getValidIds(roles, UserRole); - const verifiedPermissionIds = await getValidIds( - permissions, - UserPermission - ); - const response = await User.findByIdAndUpdate(user, { - $push: { - roles: { $each: verifiedRoleIds }, - permissions: { $each: verifiedPermissionIds }, + + let verifiedRoleIds = await getValidIds(roles, UserRole); + let verifiedPermissionIds = await getValidIds(permissions, UserPermission); + verifiedRoleIds = verifiedRoleIds || []; + verifiedPermissionIds = verifiedPermissionIds || []; + + const response = await User.findByIdAndUpdate( + user, + { + $push: { + roles: { $each: verifiedRoleIds }, + permissions: { $each: verifiedPermissionIds }, + }, }, - }); + { returnDocument: "after" } + ); res.send({ success: true, data: response }); }, removeUserAccessControl: async (req, res, next) => { - const { user, roles, permissions } = req.body; + const { user } = req.params; + const { roles, permissions } = req.body; if (!mongoose.isValidObjectId(user)) { throw new Error(`invalid format for user id field`); } const verifiedRoleIds = await getValidIds(roles, UserRole); - const verifiedPermissionIds = await getValidIds( - permissions, - UserPermission - ); - const response = await User.findByIdAndUpdate(user, { - $pull: { - roles: { $in: verifiedRoleIds }, - permissions: { $in: verifiedPermissionIds }, + const verifiedPermissionIds = await getValidIds(permissions, UserPermission); + const response = await User.findByIdAndUpdate( + user, + { + $pull: { + roles: { $in: verifiedRoleIds }, + permissions: { $in: verifiedPermissionIds }, + }, }, - }); + { returnDocument: "after" } + ); res.send({ success: true, data: response }); }, }; diff --git a/src/controller/user.router.js b/src/controller/user.router.js index ffb840a..9840f0a 100644 --- a/src/controller/user.router.js +++ b/src/controller/user.router.js @@ -4,17 +4,7 @@ const { SuperAdminCheck, AuthenticateMiddleware } = require("./utils/authorize") router.post("/register", controller.registerUser); router.post("/login", controller.loginUser); -router.post( - "/:id/addAccess", - AuthenticateMiddleware, - SuperAdminCheck, - controller.addUserAccessControl -); -router.post( - "/:id/removeAccess", - AuthenticateMiddleware, - SuperAdminCheck, - controller.removeUserAccessControl -); +router.post("/:user/add-access", AuthenticateMiddleware, SuperAdminCheck, controller.addUserAccessControl); +router.post("/:user/remove-access", AuthenticateMiddleware, SuperAdminCheck, controller.removeUserAccessControl); module.exports = router; diff --git a/src/controller/userPermission.controller.js b/src/controller/userPermission.controller.js index bff698c..d55a5d7 100644 --- a/src/controller/userPermission.controller.js +++ b/src/controller/userPermission.controller.js @@ -30,8 +30,8 @@ const getScopes = async (scopes, searchSet) => { module.exports = { getAllPermissions: async (req, res, next) => { let { page, perPage } = req.query; - page = page || 0; - perPage = perPage || 10; + page = page ? parseInt(page) : 0; + perPage = perPage ? parseInt(perPage) : 10; const result = await UserPermission.find( {}, diff --git a/src/controller/userRole.controller.js b/src/controller/userRole.controller.js index ad5b211..3ea3d0f 100644 --- a/src/controller/userRole.controller.js +++ b/src/controller/userRole.controller.js @@ -3,9 +3,8 @@ const UserRole = require("../models/UserRole"); const UserPermission = require("../models/UserPermission"); const getValidPermissions = async (permissions) => { - const verifiedPermissions = permissions.filter((permission) => - mongoose.isValidObjectId(permission) - ); + const verifiedPermissions = permissions.filter((permission) => mongoose.isValidObjectId(permission)); + if (verifiedPermissions.length === 0) return []; const permissionObjects = await UserPermission.find({ id: { $in: verifiedPermissions }, }).select({ _id: 1 }); @@ -15,8 +14,8 @@ const getValidPermissions = async (permissions) => { module.exports = { getAllRoles: async (req, res, next) => { let { page, perPage } = req.query; - page = page || 0; - perPage = perPage || 10; + page = page ? parseInt(page) : 0; + perPage = perPage ? parseInt(perPage) : 10; const result = await UserRole.find( {}, diff --git a/src/controller/utils/authorize.js b/src/controller/utils/authorize.js index ea92041..286810b 100644 --- a/src/controller/utils/authorize.js +++ b/src/controller/utils/authorize.js @@ -38,7 +38,7 @@ const authorize = async ( module.exports = { SuperAdminCheck: async (req, res, next) => { const SuperAdmin = await UserRole.findOne({ name: SUPER_ADMIN_ROLE }); - if (authorize(req.locals.user, [SuperAdmin.id])) { + if (authorize(res.locals.user, [SuperAdmin.id])) { next(); } else { res @@ -50,7 +50,7 @@ module.exports = { try { const token = req.headers.authorization || ""; if (token) { - const user = authenticate(token); + const user = await authenticate(token); res.locals.user = user; next(); } else { diff --git a/src/controller/warehouse.controller.js b/src/controller/warehouse.controller.js index 968cd36..3b7803b 100644 --- a/src/controller/warehouse.controller.js +++ b/src/controller/warehouse.controller.js @@ -19,7 +19,7 @@ module.exports = { res.status(404); return; } - req.send(warehouseData); + res.send(warehouseData); } catch (error) { next(error); } @@ -49,7 +49,7 @@ module.exports = { res.status(404); return; } - req.send(warehouseData); + res.send(warehouseData); } catch (error) { next(error); } @@ -108,7 +108,7 @@ module.exports = { if (company_id) warehouseData.company_id = mongoose.Types.ObjectId(company_id); await warehouseData.save(); - req.send(warehouseData); + res.send(warehouseData); } catch (error) { next(error); } diff --git a/src/controller/zone.controller.js b/src/controller/zone.controller.js index 623dced..e2039b9 100644 --- a/src/controller/zone.controller.js +++ b/src/controller/zone.controller.js @@ -19,7 +19,7 @@ module.exports = { res.status(404); return; } - req.send(zoneData); + res.send(zoneData); } catch (error) { next(error); } @@ -49,7 +49,7 @@ module.exports = { res.status(404); return; } - req.send(zoneData); + res.send(zoneData); } catch (error) { next(error); } @@ -86,7 +86,7 @@ module.exports = { if (warehouse_id) zoneData.warehouse_id = mongoose.Types.ObjectId(warehouse_id); await zoneData.save(); - req.send(zoneData); + res.send(zoneData); } catch (error) { next(error); } diff --git a/src/models/Inventory.js b/src/models/Inventory.js index 786724a..180ba24 100644 --- a/src/models/Inventory.js +++ b/src/models/Inventory.js @@ -17,15 +17,12 @@ const schema = new mongoose.Schema( policies: { tracking: { type: Object, // Create a different model and reference it here once more details available - required: true, }, alerting: { type: Object, // Create a different model and reference it here once more details available - required: true, }, replenishment: { type: Object, // Create a different model and reference it here once more details available - required: true, }, }, }, diff --git a/src/models/Level.js b/src/models/Level.js index c33565d..7d3ccf6 100644 --- a/src/models/Level.js +++ b/src/models/Level.js @@ -28,7 +28,7 @@ const schema = new mongoose.Schema( type: String, enum: SubLevelTypes, }, - postitions: [ + positions: [ { type: String, enum: LevelPositions, diff --git a/src/models/Sublevel.js b/src/models/Sublevel.js index b32bee0..e230e8b 100644 --- a/src/models/Sublevel.js +++ b/src/models/Sublevel.js @@ -38,7 +38,7 @@ const schema = new mongoose.Schema( type: String, enum: SubLevelTypes, }, - postitions: [ + positions: [ { type: String, enum: LevelPositions, @@ -55,7 +55,7 @@ const schema = new mongoose.Schema( type: Boolean, default: false, }, - preffered_inventory: [ + preferred_inventory: [ { id: { type: mongoose.Schema.Types.ObjectId,