Skip to content

Commit b72e032

Browse files
Merge pull request #304 from Vikrantsingh22/269-allendpoints-for-department
[feat]-269-add-all-endpoints-for-department
2 parents a6a04e7 + 3a7bf19 commit b72e032

File tree

4 files changed

+145
-1
lines changed

4 files changed

+145
-1
lines changed

app.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import authRouter from "#routes/auth";
1111
import accreditationRouter from "#routes/accreditation";
1212
import infrastructureRouter from "#routes/infrastructure";
1313
import { identifyUser } from "#middleware/identifyUser";
14+
import departmentRouter from "#routes/department";
1415

1516
const app = express();
1617
const currDirName = dirname(fileURLToPath(import.meta.url));
@@ -33,5 +34,5 @@ app.use("/users", usersRouter);
3334
app.use("/auth", authRouter);
3435
app.use("/accreditation", accreditationRouter);
3536
app.use("/infrastructure", infrastructureRouter);
36-
37+
app.use("/department", departmentRouter);
3738
export default app;

controller/department.js

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
import {
2+
updateDepartmentbyid, createnewdepartment, listdepartment, deletedepartment,
3+
} from "#services/department";
4+
5+
import { logger } from "#util";
6+
7+
async function addDepartment(req, res) {
8+
const {
9+
name,
10+
acronym,
11+
yearOfStarting,
12+
accreditations,
13+
infrastructures,
14+
} = req.body;
15+
try {
16+
const department = await createnewdepartment(
17+
name,
18+
acronym,
19+
yearOfStarting,
20+
accreditations,
21+
infrastructures,
22+
);
23+
res.json({
24+
res: `added Department successfully ${department.name}`,
25+
});
26+
} catch (error) {
27+
logger.error("Error while inserting", error);
28+
res.status(500);
29+
res.json({ err: "Error while inserting in DB" });
30+
}
31+
}
32+
33+
async function removedepartmentbyid(req, res) {
34+
const { departmentId } = req.params;
35+
try {
36+
await deletedepartment(departmentId);
37+
res.json({
38+
res: "Department deleted successfully",
39+
});
40+
} catch (error) {
41+
logger.error("Error while deleting", error);
42+
res.status(500);
43+
res.json({ err: "Error while deleting from DB" });
44+
}
45+
}
46+
47+
async function showdepartments(req, res) {
48+
try {
49+
const departments = await listdepartment(req.query);
50+
return res.json({
51+
res: departments,
52+
});
53+
} catch (error) {
54+
logger.error("Error while fetching", error);
55+
res.status(500);
56+
return res.json({ err: "Error while fetching the data" });
57+
}
58+
}
59+
60+
async function updatedDepartment(req, res) {
61+
const {
62+
id, data,
63+
} = req.body;
64+
try {
65+
await updateDepartmentbyid(id, data);
66+
res.json({
67+
res: "department updated successfully",
68+
});
69+
} catch (error) {
70+
logger.error("Error while inserting", error);
71+
res.status(500);
72+
res.json({ err: "Error while inserting in DB" });
73+
}
74+
}
75+
76+
export default {
77+
updatedDepartment, showdepartments, removedepartmentbyid, addDepartment,
78+
};

routes/department.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import express from "express";
2+
import departmentContoller from "#controller/department";
3+
4+
const router = express.Router();
5+
6+
router.get("/list", departmentContoller.showdepartments);
7+
router.post("/create", departmentContoller.addDepartment);
8+
router.delete("/delete/:departmentId", departmentContoller.removedepartmentbyid);
9+
router.post("/update", departmentContoller.updatedDepartment);
10+
11+
export default router;

services/department.js

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import department from "#models/department";
2+
import databaseError from "#error/database";
3+
4+
export async function createnewdepartment(
5+
name,
6+
acronym,
7+
yearOfStarting,
8+
accreditations,
9+
infrastructures,
10+
) {
11+
const newdepartment = await department.create({
12+
name,
13+
acronym,
14+
yearOfStarting,
15+
accreditations,
16+
infrastructures,
17+
});
18+
if (newdepartment.name === name) {
19+
return newdepartment;
20+
}
21+
throw new databaseError.DataEntryError("Add department");
22+
}
23+
24+
export async function listdepartment(filter) {
25+
const listeddepartment = await department.read(filter);
26+
if (listeddepartment) {
27+
return listeddepartment;
28+
}
29+
throw new databaseError.DataNotFoundError("Department");
30+
}
31+
32+
export async function deletedepartment(departmentId) {
33+
const deletedDepartment = await department.remove({
34+
_id: departmentId,
35+
});
36+
if (deletedDepartment) {
37+
return deletedDepartment;
38+
}
39+
throw new databaseError.DataDeleteError("department");
40+
}
41+
42+
export async function updateDepartmentbyid(id, data) {
43+
const updatedDepartment = await department.update({
44+
_id: id,
45+
}, data);
46+
if (updatedDepartment) {
47+
return updatedDepartment;
48+
}
49+
throw new databaseError.DataEntryError("department");
50+
}
51+
52+
export default {
53+
updateDepartmentbyid, createnewdepartment, listdepartment, deletedepartment,
54+
};

0 commit comments

Comments
 (0)