Skip to content

Commit 5fddd20

Browse files
Merge branch 'development' into 294-Write-APIDOCs-for-student
2 parents 6cd579a + b71873d commit 5fddd20

File tree

18 files changed

+1162
-7
lines changed

18 files changed

+1162
-7
lines changed

_apidoc.js

Lines changed: 452 additions & 4 deletions
Large diffs are not rendered by default.

app.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { logger } from "#util";
88
import indexRouter from "#routes/index";
99
import usersRouter from "#routes/users";
1010
import authRouter from "#routes/auth";
11+
import semesterRouter from "#routes/semester";
1112
import accreditationRouter from "#routes/accreditation";
1213
import infrastructureRouter from "#routes/infrastructure";
1314
import practicalRouter from "#routes/practical";
@@ -22,6 +23,8 @@ import moduleRouter from "#routes/module";
2223
import facultyRouter from "#routes/faculty";
2324
import { identifyUser } from "#middleware/identifyUser";
2425
import departmentRouter from "#routes/department";
26+
import paperRouter from "#routes/paper";
27+
import groupRouter from "#routes/group";
2528

2629
const app = express();
2730
const currDirName = dirname(fileURLToPath(import.meta.url));
@@ -55,5 +58,9 @@ app.use("/timetable", timetableRouter);
5558
app.use("/department", departmentRouter);
5659
app.use("/coursework", courseworkRouter);
5760
app.use("/module", moduleRouter);
61+
app.use("/paper", paperRouter);
62+
app.use("/group", groupRouter);
63+
app.use("/semester", semesterRouter);
5864
app.use("/faculty", facultyRouter);
65+
5966
export default app;

controller/group.js

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import {
2+
createGroup, deleteGroupById, groupList, updateGroupById,
3+
} from "#services/group";
4+
import { logger } from "#util";
5+
6+
async function addGroup(req, res) {
7+
const {
8+
title, student,
9+
} = req.body;
10+
try {
11+
const group = await createGroup(title, student);
12+
res.json({ res: `added group ${group.id}`, id: group.id });
13+
} catch (error) {
14+
logger.error("Error while inserting", error);
15+
res.status(500);
16+
res.json({ err: "Error while inserting in DB" });
17+
}
18+
}
19+
20+
async function updateGroup(req, res) {
21+
const { id } = req.params;
22+
const {
23+
...data
24+
} = req.body;
25+
try {
26+
await updateGroupById(id, data);
27+
res.json({ res: `updated group with id ${id}` });
28+
} catch (error) {
29+
logger.error("Error while updating", error);
30+
res.status(500);
31+
res.json({ err: "Error while updaing in DB" });
32+
}
33+
}
34+
35+
async function getGroup(req, res) {
36+
const filter = req.query;
37+
const group = await groupList(filter);
38+
res.json({ res: group });
39+
}
40+
41+
async function deleteGroup(req, res) {
42+
const { id } = req.params;
43+
try {
44+
await deleteGroupById(id);
45+
res.json({ res: `Deleted group with ID ${id}` });
46+
} catch (error) {
47+
logger.error("Error while deleting", error);
48+
res.status(500).json({ error: "Error while deleting from DB" });
49+
}
50+
}
51+
52+
export default {
53+
addGroup, deleteGroup, getGroup, updateGroup,
54+
};

controller/paper.js

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
import {
2+
createPaper, updatePaperById, listPaper, deletePaperById,
3+
} from "#services/paper";
4+
import { logger } from "#util";
5+
6+
async function addPaper(req, res) {
7+
const {
8+
answerSheetID,
9+
exam,
10+
student,
11+
checkedBy,
12+
mark,
13+
} = req.body;
14+
try {
15+
const newPaper = await createPaper(
16+
answerSheetID,
17+
exam,
18+
student,
19+
checkedBy,
20+
mark,
21+
);
22+
res.json({ res: `added paper for: ${newPaper.answerSheetID}`, id: newPaper.id });
23+
} catch (error) {
24+
logger.error("Error while inserting", error);
25+
res.status(500);
26+
res.json({ err: "Error while inserting in DB" });
27+
}
28+
}
29+
30+
async function updatePaper(req, res) {
31+
const { id } = req.params;
32+
const {
33+
...data
34+
} = req.body;
35+
try {
36+
await updatePaperById(id, data);
37+
res.json({ res: "Paper updated" });
38+
} catch (error) {
39+
logger.error("Error while updating", error);
40+
res.status(500);
41+
res.json({ err: "Error while updating in DB" });
42+
}
43+
}
44+
45+
async function showPaper(req, res) {
46+
const filter = req.query;
47+
const paper = await listPaper(filter);
48+
res.json({ res: paper });
49+
}
50+
51+
async function deletePaper(req, res) {
52+
const { id } = req.params;
53+
try {
54+
await deletePaperById(id);
55+
res.json({ res: `Deleted paper with ID ${id}` });
56+
} catch (error) {
57+
logger.error("Error while deleting", error);
58+
res.status(500).json({ error: "Error while deleting from DB" });
59+
}
60+
}
61+
62+
export default {
63+
addPaper, updatePaper, showPaper, deletePaper,
64+
};

controller/semester.js

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import {
2+
createSemester, updateSemesterById, semesterList, deleteSemesterById,
3+
} from "#services/semester";
4+
import { logger } from "#util";
5+
6+
async function addSemester(req, res) {
7+
const {
8+
number, academicYear, type, startDate, endDate,
9+
} = req.body;
10+
11+
try {
12+
const newSemester = await createSemester(number, academicYear, type, startDate, endDate);
13+
res.json({ res: `added semester ${newSemester.id} `, id: newSemester.id });
14+
} catch (error) {
15+
logger.error("Error while inserting", error);
16+
res.status(500);
17+
res.json({ err: "Error while inserting in DB" });
18+
}
19+
}
20+
21+
async function updateSemester(req, res) {
22+
const { id } = req.params;
23+
const {
24+
...data
25+
} = req.body;
26+
try {
27+
await updateSemesterById(id, data);
28+
res.json({ res: `Updated Semester with id ${id}` });
29+
} catch (error) {
30+
logger.error("Error while updating", error);
31+
res.status(500);
32+
res.json({ err: "Error while updating in DB" });
33+
}
34+
}
35+
36+
async function getSemester(req, res) {
37+
const filter = req.query;
38+
const semlist = await semesterList(filter);
39+
res.json({ res: semlist });
40+
}
41+
42+
async function deleteSemester(req, res) {
43+
const { id } = req.params;
44+
try {
45+
await deleteSemesterById(id);
46+
res.json({ res: `Deleted Semster with id ${id}` });
47+
} catch (error) {
48+
logger.error("Error while deleting", error);
49+
res.status(500).json({ error: "Error while deleting from DB" });
50+
}
51+
}
52+
export default {
53+
addSemester, deleteSemester, getSemester, updateSemester,
54+
};

models/group.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ async function read(filter, limit = 1) {
1919
}
2020

2121
async function update(filter, updateObject, options = { multi: true }) {
22-
const updateResult = await Group.updateManyupdateMany(filter, { $set: updateObject }, options);
22+
const updateResult = await Group.updateMany(filter, { $set: updateObject }, options);
2323
return updateResult.acknowledged;
2424
}
2525
async function remove(groupId) {

models/paper.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ const paperSchema = {
88
mark: { type: Number, required: true },
99
};
1010

11-
// eslint-disable-next-line no-unused-vars
1211
const Paper = connector.model("Paper", paperSchema);
1312

1413
// CRUD OPERATIONS

models/semester.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const semesterSchema = {
1010
message: (props) => `${props.value} is not a valid year format starting with "2"!`,
1111
},
1212
},
13-
type: { enum: ["ODD", "EVEN"], required: true },
13+
type: { type: String, enum: ["ODD", "EVEN"], required: true },
1414

1515
startDate: { type: Date, required: true },
1616
endDate: { type: Date, required: true },

routes/group.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import express from "express";
2+
import groupController from "#controller/group";
3+
4+
const router = express.Router();
5+
router.post("/add", groupController.addGroup);
6+
router.get("/list", groupController.getGroup);
7+
router.post("/update/:id", groupController.updateGroup);
8+
router.delete("/delete/:id", groupController.deleteGroup);
9+
10+
export default router;

routes/paper.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 paperController from "#controller/paper";
3+
4+
const router = express.Router();
5+
6+
router.post("/add", paperController.addPaper);
7+
router.get("/list", paperController.showPaper);
8+
router.post("/update/:id", paperController.updatePaper);
9+
router.delete("/delete/:id", paperController.deletePaper);
10+
11+
export default router;

0 commit comments

Comments
 (0)