Added: Area
This commit is contained in:
94
src/controller/area.controller.js
Normal file
94
src/controller/area.controller.js
Normal file
@@ -0,0 +1,94 @@
|
||||
const Area = require("../models/Area");
|
||||
const mongoose = require("mongoose");
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* Gets the area data by `id`
|
||||
*/
|
||||
getAreaByID: async (req, res, next) => {
|
||||
const { id } = req.params;
|
||||
|
||||
if (!id) {
|
||||
res.status(400).send("Missing id param");
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const areaData = await Area.findById(id);
|
||||
if (!areaData) {
|
||||
res.status(404);
|
||||
return;
|
||||
}
|
||||
req.send(areaData);
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Create a area
|
||||
*/
|
||||
createArea: async (req, res, next) => {
|
||||
const { name, type, specs, zone_id } = req.body;
|
||||
|
||||
if (!(name && type)) {
|
||||
res.status(400).send("Missing params param");
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const areaData = new Area({
|
||||
name,
|
||||
type,
|
||||
specs,
|
||||
zone_id: mongoose.Types.ObjectId(zone_id),
|
||||
});
|
||||
|
||||
await areaData.save();
|
||||
if (!areaData) {
|
||||
res.status(404);
|
||||
return;
|
||||
}
|
||||
req.send(areaData);
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Update a areas detail
|
||||
*/
|
||||
updateAreaByID: async (req, res, next) => {
|
||||
const { id } = req.params;
|
||||
|
||||
if (!id) {
|
||||
res.status(400).send("Missing id param");
|
||||
return;
|
||||
}
|
||||
|
||||
const { name, type, specs, zone_id } = req.body;
|
||||
|
||||
if (!(name || type || specs || zone_id)) {
|
||||
res.status(400).send("Missing data in body");
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const areaData = await Area.findById(id);
|
||||
if (!areaData) {
|
||||
res.status(404);
|
||||
return;
|
||||
}
|
||||
|
||||
if (name) areaData.name = name;
|
||||
if (type) areaData.type = type;
|
||||
if (specs) areaData.specs = specs;
|
||||
if (zone_id) areaData.zone_id = mongoose.Types.ObjectId(zone_id);
|
||||
|
||||
await areaData.save();
|
||||
req.send(areaData);
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
},
|
||||
};
|
||||
19
src/controller/area.router.js
Normal file
19
src/controller/area.router.js
Normal file
@@ -0,0 +1,19 @@
|
||||
const router = require("express").Router();
|
||||
const controller = require("./area.controller");
|
||||
|
||||
/**
|
||||
* @route /area/:id
|
||||
*/
|
||||
router.get("/:id", controller.getAreaByID);
|
||||
|
||||
/**
|
||||
* @route /area/
|
||||
*/
|
||||
router.post("/", controller.createArea);
|
||||
|
||||
/**
|
||||
* @route /area/
|
||||
*/
|
||||
router.patch("/:id", controller.updateAreaByID);
|
||||
|
||||
module.exports = router;
|
||||
@@ -3,11 +3,13 @@ const userRouter = require("./user.router");
|
||||
const companyRouter = require("./company.router");
|
||||
const warehouseRouter = require("./warehouse.router");
|
||||
const zoneRouter = require("./zone.router");
|
||||
const areaRouter = require("./area.router");
|
||||
|
||||
router.use("/user", userRouter);
|
||||
router.use("/company", companyRouter);
|
||||
router.use("/warehouse", warehouseRouter);
|
||||
router.use("/zone", zoneRouter);
|
||||
router.use("/area", areaRouter);
|
||||
|
||||
router.get("/", (req, res) => {
|
||||
res.send("Hello world");
|
||||
|
||||
Reference in New Issue
Block a user