diff --git a/models/paper.js b/models/paper.js index 0bc5c2e..5076960 100644 --- a/models/paper.js +++ b/models/paper.js @@ -10,3 +10,39 @@ const paperSchema = { // eslint-disable-next-line no-unused-vars const Paper = connector.model("Paper", paperSchema); + +// CRUD OPERATIONS + +async function remove(filter) { + const deleteResult = await Paper.deleteMany(filter); + return deleteResult.acknowledged; +} + +async function create(paperData) { + const { + answerSheetID, exam, student, checkedBy, mark, + } = paperData; + const paper = new Paper({ + answerSheetID, + exam, + student, + checkedBy, + mark, + }); + const paperDoc = await paper.save(); + return paperDoc; +} + +async function read(filter, limit = 1) { + const paperDoc = await Paper.find(filter).limit(limit); + return paperDoc; +} + +async function update(filter, updateObject, options = { multi: true }) { + const updateResult = await Paper.updateMany(filter, { $set: updateObject }, options); + return updateResult.acknowledged; +} + +export default { + create, read, update, remove, +}; diff --git a/models/student.js b/models/student.js new file mode 100644 index 0000000..c07c264 --- /dev/null +++ b/models/student.js @@ -0,0 +1,53 @@ +import connector from "#models/databaseUtil"; + +const studentSchema = { + ERPID: { type: String, required: true }, + name: { type: String, required: true }, + joiningYear: { type: Number, required: true }, + branch: { type: connector.Schema.Types.ObjectId, ref: "Department", required: true }, + division: { type: String, enum: ["A", "B", "C"], default: "A" }, + rollNo: { type: Number, required: true }, + coursesOpted: [{ type: connector.Schema.Types.ObjectId, ref: "Course", required: true }], +}; + +// eslint-disable-next-line no-unused-vars + +const Student = connector.model("Student", studentSchema); + +// CRUD OPERATIONS + +async function remove(filter) { + const deleteResult = await Student.deleteMany(filter); + return deleteResult.acknowledged; +} + +async function create(studentData) { + const { + ERPID, name, joiningYear, branch, division, rollNo, coursesOpted, + } = studentData; + const student = new Student({ + ERPID, + name, + joiningYear, + branch, + division, + rollNo, + coursesOpted, + }); + const studentDoc = await student.save(); + return studentDoc; +} + +async function read(filter, limit = 1) { + const studentDoc = await Student.find(filter).limit(limit); + return studentDoc; +} + +async function update(filter, updateObject, options = { multi: true }) { + const updateResult = await Student.updateMany(filter, { $set: updateObject }, options); + return updateResult.acknowledged; +} + +export default { + create, read, update, remove, +};