From 101911a3b86080016a780906b364e0fb13ce11cd Mon Sep 17 00:00:00 2001 From: Swathi Harish Date: Thu, 31 Aug 2023 19:50:58 +0530 Subject: [PATCH] [CREATED] Created model for student and added CURD --- models/student.js | 53 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 models/student.js 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, +};