Added: Company

This commit is contained in:
Llewellyn D'souza
2021-12-22 13:33:47 +05:30
parent dfca11b56e
commit 08f96faa56
3 changed files with 114 additions and 0 deletions

View File

@@ -0,0 +1,93 @@
const Company = require("../models/Company");
module.exports = {
/**
* Gets the company data by `id`
*/
getCompanyByID: async (req, res, next) => {
const { id } = req.params;
if (!id) {
res.status(400).send("Missing id param");
return;
}
try {
const companyData = await Company.findById(id);
if (!companyData) {
res.status(404);
return;
}
req.send(companyData);
} catch (error) {
next(error);
}
},
/**
* Create a company
*/
createCompany: async (req, res, next) => {
const { name, address, contact_info, business_info } = req.body;
if (!(name && address)) {
res.status(400).send("Missing params param");
return;
}
try {
const companyData = new Company({
name,
address,
contact_info,
business_info,
});
await companyData.save();
if (!companyData) {
res.status(404);
return;
}
req.send(companyData);
} catch (error) {
next(error);
}
},
/**
* Update a companys detail
*/
updateCompanyByID: async (req, res, next) => {
const { id } = req.params;
if (!id) {
res.status(400).send("Missing id param");
return;
}
const { name, address, contact_info, business_info } = req.body;
if (!(name || address || contact_info || business_info)) {
res.status(400).send("Missing data in body");
return;
}
try {
const companyData = await Company.findById(id);
if (!companyData) {
res.status(404);
return;
}
if (name) companyData.name = name;
if (address) companyData.address = address;
if (contact_info) companyData.contact_info = contact_info;
if (business_info) companyData.business_info = business_info;
await companyData.save();
req.send(companyData);
} catch (error) {
next(error);
}
},
};

View File

@@ -0,0 +1,19 @@
const router = require("express").Router();
const controller = require("./company.controller");
/**
* @route /company/:id
*/
router.get("/:id", controller.getCompanyByID);
/**
* @route /company/
*/
router.post("/", controller.createCompany);
/**
* @route /company/
*/
router.patch("/:id", controller.updateCompanyByID);
module.exports = router;

View File

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