Added: warehouse

This commit is contained in:
Llewellyn D'souza
2021-12-22 13:34:06 +05:30
parent 08f96faa56
commit 8440e6ebb4
3 changed files with 115 additions and 0 deletions

View File

@@ -1,9 +1,11 @@
const router = require("express").Router();
const userRouter = require("./user.router");
const companyRouter = require("./company.router");
const warehouseRouter = require("./warehouse.router");
router.use("/user", userRouter);
router.use("/company", companyRouter);
router.use("/warehouse", warehouseRouter);
router.get("/", (req, res) => {
res.send("Hello world");

View File

@@ -0,0 +1,94 @@
const Warehouse = require("../models/Warehouse");
const mongoose = require("mongoose");
module.exports = {
/**
* Gets the warehouse data by `id`
*/
getWarehouseByID: async (req, res, next) => {
const { id } = req.params;
if (!id) {
res.status(400).send("Missing id param");
return;
}
try {
const warehouseData = await Warehouse.findById(id);
if (!warehouseData) {
res.status(404);
return;
}
req.send(warehouseData);
} catch (error) {
next(error);
}
},
/**
* Create a warehouse
*/
createWarehouse: async (req, res, next) => {
const { name, address, specs, company_id } = req.body;
if (!(name && address)) {
res.status(400).send("Missing params param");
return;
}
try {
const warehouseData = new Warehouse({
name,
address,
specs,
company_id: mongoose.Types.ObjectId(company_id),
});
await warehouseData.save();
if (!warehouseData) {
res.status(404);
return;
}
req.send(warehouseData);
} catch (error) {
next(error);
}
},
/**
* Update a warehouses detail
*/
updateWarehouseByID: async (req, res, next) => {
const { id } = req.params;
if (!id) {
res.status(400).send("Missing id param");
return;
}
const { name, address, specs, company_id } = req.body;
if (!(name || address || specs || company_id)) {
res.status(400).send("Missing data in body");
return;
}
try {
const warehouseData = await Warehouse.findById(id);
if (!warehouseData) {
res.status(404);
return;
}
if (name) warehouseData.name = name;
if (address) warehouseData.address = address;
if (specs) warehouseData.specs = specs;
if (company_id) warehouseData.company_id = mongoose.Types.ObjectId(company_id);
await warehouseData.save();
req.send(warehouseData);
} catch (error) {
next(error);
}
},
};

View File

@@ -0,0 +1,19 @@
const router = require("express").Router();
const controller = require("./warehouse.controller");
/**
* @route /warehouse/:id
*/
router.get("/:id", controller.getWarehouseByID);
/**
* @route /warehouse/
*/
router.post("/", controller.createWarehouse);
/**
* @route /warehouse/
*/
router.patch("/:id", controller.updateWarehouseByID);
module.exports = router;