Added: Level
This commit is contained in:
@@ -6,6 +6,7 @@ const zoneRouter = require("./zone.router");
|
|||||||
const areaRouter = require("./area.router");
|
const areaRouter = require("./area.router");
|
||||||
const bayRouter = require("./bay.router");
|
const bayRouter = require("./bay.router");
|
||||||
const rowRouter = require("./row.router");
|
const rowRouter = require("./row.router");
|
||||||
|
const levelRouter = require("./level.router");
|
||||||
|
|
||||||
router.use("/user", userRouter);
|
router.use("/user", userRouter);
|
||||||
router.use("/company", companyRouter);
|
router.use("/company", companyRouter);
|
||||||
@@ -14,6 +15,7 @@ router.use("/zone", zoneRouter);
|
|||||||
router.use("/area", areaRouter);
|
router.use("/area", areaRouter);
|
||||||
router.use("/bay", bayRouter);
|
router.use("/bay", bayRouter);
|
||||||
router.use("/row", rowRouter);
|
router.use("/row", rowRouter);
|
||||||
|
router.use("/level", levelRouter);
|
||||||
|
|
||||||
router.get("/", (req, res) => {
|
router.get("/", (req, res) => {
|
||||||
res.send("Hello world");
|
res.send("Hello world");
|
||||||
|
|||||||
94
src/controller/level.controller.js
Normal file
94
src/controller/level.controller.js
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
const Level = require("../models/Level");
|
||||||
|
const mongoose = require("mongoose");
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
/**
|
||||||
|
* Gets the level data by `id`
|
||||||
|
*/
|
||||||
|
getLevelByID: async (req, res, next) => {
|
||||||
|
const { id } = req.params;
|
||||||
|
|
||||||
|
if (!id) {
|
||||||
|
res.status(400).send("Missing id param");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const levelData = await Level.findById(id);
|
||||||
|
if (!levelData) {
|
||||||
|
res.status(404);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
req.send(levelData);
|
||||||
|
} catch (error) {
|
||||||
|
next(error);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a level
|
||||||
|
*/
|
||||||
|
createLevel: async (req, res, next) => {
|
||||||
|
const { name, number, specs, bay_id } = req.body;
|
||||||
|
|
||||||
|
if (!(name && number)) {
|
||||||
|
res.status(400).send("Missing params param");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const levelData = new Level({
|
||||||
|
name,
|
||||||
|
number: parseInt(number),
|
||||||
|
specs,
|
||||||
|
bay_id: mongoose.Types.ObjectId(bay_id),
|
||||||
|
});
|
||||||
|
|
||||||
|
await levelData.save();
|
||||||
|
if (!levelData) {
|
||||||
|
res.status(404);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
req.send(levelData);
|
||||||
|
} catch (error) {
|
||||||
|
next(error);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update a levels detail
|
||||||
|
*/
|
||||||
|
updateLevelByID: async (req, res, next) => {
|
||||||
|
const { id } = req.params;
|
||||||
|
|
||||||
|
if (!id) {
|
||||||
|
res.status(400).send("Missing id param");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const { name, number, specs, bay_id } = req.body;
|
||||||
|
|
||||||
|
if (!(name || number || specs || bay_id)) {
|
||||||
|
res.status(400).send("Missing data in body");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const levelData = await Level.findById(id);
|
||||||
|
if (!levelData) {
|
||||||
|
res.status(404);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (name) levelData.name = name;
|
||||||
|
if (number) levelData.number = parseInt(number);
|
||||||
|
if (specs) levelData.specs = specs;
|
||||||
|
if (bay_id) levelData.bay_id = mongoose.Types.ObjectId(bay_id);
|
||||||
|
|
||||||
|
await levelData.save();
|
||||||
|
req.send(levelData);
|
||||||
|
} catch (error) {
|
||||||
|
next(error);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
19
src/controller/level.router.js
Normal file
19
src/controller/level.router.js
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
const router = require("express").Router();
|
||||||
|
const controller = require("./level.controller");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @route /level/:id
|
||||||
|
*/
|
||||||
|
router.get("/:id", controller.getLevelByID);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @route /level/
|
||||||
|
*/
|
||||||
|
router.post("/", controller.createLevel);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @route /level/
|
||||||
|
*/
|
||||||
|
router.patch("/:id", controller.updateLevelByID);
|
||||||
|
|
||||||
|
module.exports = router;
|
||||||
@@ -9,7 +9,7 @@ const schema = new mongoose.Schema(
|
|||||||
},
|
},
|
||||||
number: {
|
number: {
|
||||||
required: true,
|
required: true,
|
||||||
type: String,
|
type: Number,
|
||||||
trim: true,
|
trim: true,
|
||||||
},
|
},
|
||||||
specs: {
|
specs: {
|
||||||
@@ -17,6 +17,10 @@ const schema = new mongoose.Schema(
|
|||||||
type: String,
|
type: String,
|
||||||
trim: true,
|
trim: true,
|
||||||
},
|
},
|
||||||
|
bay_id: {
|
||||||
|
type: mongoose.Schema.Types.ObjectId,
|
||||||
|
ref: "Bay",
|
||||||
|
},
|
||||||
sub_levels: [
|
sub_levels: [
|
||||||
{
|
{
|
||||||
type: {
|
type: {
|
||||||
|
|||||||
Reference in New Issue
Block a user