diff --git a/README.md b/README.md index 63e1942..ade8751 100644 --- a/README.md +++ b/README.md @@ -37,9 +37,9 @@ node -e "console.log(require('crypto').randomBytes(256).toString('base64')); You don't need to assign values to these parameters in double or single quotes, just write directly, .env automatically converts it into quoted string. Once you are done with this, install the packages through `npm ci` which stands for clean install. -Also, you need to run 'setup.js' file. You can do that by running following command in your terminal +Also you need to run the following command to check for you eslint and jest testcases: ``` -node setup.js +npm run prepare ``` And finally, run the server with `npm run serverstart` or `npm run serverstartWin` depending on your operating system. diff --git a/controller/accreditation.js b/controller/accreditation.js index d643255..bebaeea 100644 --- a/controller/accreditation.js +++ b/controller/accreditation.js @@ -1,16 +1,25 @@ import { - addNewAccreditation, deleteAccreditationById, updateAccreditationById, getAccreditations, + addNewAccreditation, + deleteAccreditationById, + updateAccreditationById, + getAccreditations, } from "#services/accreditation"; import { logger } from "#util"; async function addAccreditation(req, res) { - const { - name, agencyName, dateofAccreditation, dateofExpiry, - } = req.body; + const { name, agencyName, dateofAccreditation, dateofExpiry } = req.body; try { // eslint-disable-next-line max-len - const accreditation = await addNewAccreditation(name, agencyName, dateofAccreditation, dateofExpiry); - res.json({ res: `added accreditation ${accreditation.name}`, id: accreditation.id }); + const accreditation = await addNewAccreditation( + name, + agencyName, + dateofAccreditation, + dateofExpiry, + ); + res.json({ + res: `added accreditation ${accreditation.name}`, + id: accreditation.id, + }); } catch (error) { logger.error("Error while inserting", error); res.status(500); @@ -31,9 +40,7 @@ async function deleteAccreditation(req, res) { async function updateAccreditation(req, res) { const { id } = req.params; - const { - ...data - } = req.body; + const { ...data } = req.body; try { await updateAccreditationById(id, data); @@ -47,7 +54,9 @@ async function updateAccreditation(req, res) { async function showAccreditation(req, res) { try { - const accreditation = await getAccreditations(req.query); + const filter = req.body; + const { limit, page } = req.query; + const accreditation = await getAccreditations(filter, limit, page); return res.json({ res: accreditation }); } catch (error) { logger.error("Error while fetching", error); @@ -57,5 +66,8 @@ async function showAccreditation(req, res) { } export default { - addAccreditation, updateAccreditation, deleteAccreditation, showAccreditation, + addAccreditation, + updateAccreditation, + deleteAccreditation, + showAccreditation, }; diff --git a/controller/activity.js b/controller/activity.js index 2e1ceb3..a276267 100644 --- a/controller/activity.js +++ b/controller/activity.js @@ -1,64 +1,86 @@ import { - createActivity,deleteActivityById, activityList ,updateActivityById, -}from "#services/activity"; -import {logger} from "#util" ; + createActivity, + deleteActivityById, + activityList, + updateActivityById, +} from "#services/activity"; +import { logger } from "#util"; -async function addActivity(req,res) { - const{ - activityBlueprint, - startTime, - duration, - course, - faculty, - type, - task, - group, - students, - }=req.body; - try{ - const newActivity = await createActivity(activityBlueprint,startTime,duration,course,faculty,type,task,group,students); - res.json ({res: `added activity ${newActivity.id}`, id: newActivity.id}); - } catch (error){ - logger.error ("Error while inserting",error); - res.status(500); - res.json({err:"Error while inserting in DB"}); - } +async function addActivity(req, res) { + const { + activityBlueprint, + startTime, + duration, + course, + faculty, + type, + task, + group, + students, + } = req.body; + try { + const newActivity = await createActivity( + activityBlueprint, + startTime, + duration, + course, + faculty, + type, + task, + group, + students, + ); + return res.json({ + res: `added activity ${newActivity.id}`, + id: newActivity.id, + }); + } catch (error) { + logger.error("Error while inserting", error); + res.status(500); + return res.json({ err: "Error while inserting in DB" }); + } } -async function updateActivity(req,res){ - const { id }=req.params; - const { - ...data - }=req.body; - try { - await updateActivityById(id,data); - res.json({res:`updated activity with id ${id}`}); - }catch (error){ - logger.error("Error while updating",error); - res.status(500); - res.json({err:"Error while updating in DB"}); - } +async function updateActivity(req, res) { + const { id } = req.params; + const { ...data } = req.body; + try { + await updateActivityById(id, data); + return res.json({ res: `updated activity with id ${id}` }); + } catch (error) { + logger.error("Error while updating", error); + res.status(500); + return res.json({ err: "Error while updating in DB" }); + } } -async function getActivity(req,res){ - const filter = req.query; - const activitylist =await activityList(filter); - res.json({res:activitylist}); +async function getActivity(req, res) { + try { + const filter = req.body; + const { limit, page } = req.query; + const activitylist = await activityList(filter, limit, page); + return res.json({ res: activitylist }); + } catch (error) { + logger.error("Error while fetching", error); + res.status(500); + return res.json({ err: "Error while fetching the data" }); + } } - -async function deleteActivity(res,req){ - const { id }=req.params; - try{ - await deleteActivityById(id); - - res.json({res:`Deleted activity with ID ${id}`}); - }catch(error){ - logger.error ("Error while deleting",error); - res.status(500).json({error:"Error while deleting from DB"}); - } +async function deleteActivity(res, req) { + const { id } = req.params; + try { + await deleteActivityById(id); + return res.json({ res: `Deleted activity with ID ${id}` }); + } catch (error) { + logger.error("Error while deleting", error); + return res.status(500).json({ error: "Error while deleting from DB" }); + } } export default { - addActivity, deleteActivity ,getActivity ,updateActivity, -}; \ No newline at end of file + addActivity, + deleteActivity, + getActivity, + updateActivity, +}; diff --git a/controller/assignment.js b/controller/assignment.js index 221d448..6ff363f 100644 --- a/controller/assignment.js +++ b/controller/assignment.js @@ -1,15 +1,19 @@ import { - createAssignment, deleteAssignmentById, assignmentList, updateAssignmentById, + createAssignment, + deleteAssignmentById, + assignmentList, + updateAssignmentById, } from "#services/assignment"; import { logger } from "#util"; async function addAssignment(req, res) { - const { - no, title, type, marks, - } = req.body; + const { no, title, type, marks } = req.body; try { const newAssignment = await createAssignment(no, title, type, marks); - res.json({ res: `added assignment ${newAssignment.id}`, id: newAssignment.id }); + res.json({ + res: `added assignment ${newAssignment.id}`, + id: newAssignment.id, + }); } catch (error) { logger.error("Error while inserting", error); res.status(500); @@ -19,9 +23,7 @@ async function addAssignment(req, res) { async function updateAssignment(req, res) { const { id } = req.params; - const { - ...data - } = req.body; + const { ...data } = req.body; try { await updateAssignmentById(id, data); res.json({ res: `updated assignment ${id}` }); @@ -33,22 +35,31 @@ async function updateAssignment(req, res) { } async function getAssignment(req, res) { - const filter = req.query; - const assingmentlist = await assignmentList(filter); - res.json({ res: assingmentlist }); + try { + const filter = req.body; + const { limit, page } = req.query; + const assingmentlist = await assignmentList(filter, limit, page); + return res.json({ res: assingmentlist }); + } catch (error) { + logger.error("Error while fetching", error); + res.status(500); + return res.json({ err: "Error while fetching the data" }); + } } async function deleteAssignment(req, res) { const { id } = req.params; try { await deleteAssignmentById(id); - - res.json({ res: `Deleted assignment with ID ${id}` }); + return res.json({ res: `Deleted assignment with ID ${id}` }); } catch (error) { logger.error("Error while deleting", error); - res.status(500).json({ error: "Error while deleting from DB" }); + return res.status(500).json({ error: "Error while deleting from DB" }); } } export default { - addAssignment, deleteAssignment, getAssignment, updateAssignment, + addAssignment, + deleteAssignment, + getAssignment, + updateAssignment, }; diff --git a/controller/attendance.js b/controller/attendance.js index f0e0cb3..ce86ab9 100644 --- a/controller/attendance.js +++ b/controller/attendance.js @@ -1,62 +1,82 @@ import { - addNewAttendance, deleteAttendanceById, updateAttendanceById, getAttendances, - } from "#services/attendance"; - import { logger } from "#util"; - - async function addAttendance(req, res) { - const { - student, course, monthlyAttended, monthlyOccured, cumulativeAttended, cumulativeOccured, - } = req.body; - try { - // eslint-disable-next-line max-len - const attendance = await addNewAttendance( student, course, monthlyAttended, monthlyOccured, cumulativeAttended, cumulativeOccured); - res.json({ res: `added attendance ${attendance.student}`, id: attendance.id }); - } catch (error) { - logger.error("Error while inserting", error); - res.status(500); - res.json({ err: "Error while inserting in DB" }); - } + addNewAttendance, + deleteAttendanceById, + updateAttendanceById, + getAttendances, +} from "#services/attendance"; +import { logger } from "#util"; + +async function addAttendance(req, res) { + const { + student, + course, + monthlyAttended, + monthlyOccured, + cumulativeAttended, + cumulativeOccured, + } = req.body; + try { + // eslint-disable-next-line max-len + const attendance = await addNewAttendance( + student, + course, + monthlyAttended, + monthlyOccured, + cumulativeAttended, + cumulativeOccured, + ); + res.json({ + res: `added attendance ${attendance.student}`, + id: attendance.id, + }); + } catch (error) { + logger.error("Error while inserting", error); + res.status(500); + res.json({ err: "Error while inserting in DB" }); } - async function deleteAttendance(req, res) { - const { id } = req.params; - try { - await deleteAttendanceById(id); - res.json({ res: "Attendance deleted successfully" }); - } catch (error) { - logger.error("Error while deleting", error); - res.status(500); - res.json({ err: "Error while deleting from DB" }); - } +} +async function deleteAttendance(req, res) { + const { id } = req.params; + try { + await deleteAttendanceById(id); + res.json({ res: "Attendance deleted successfully" }); + } catch (error) { + logger.error("Error while deleting", error); + res.status(500); + res.json({ err: "Error while deleting from DB" }); } - - async function updateAttendance(req, res) { - const { id } = req.params; - const { - ...data - } = req.body; - - try { - await updateAttendanceById(id, data); - res.json({ res: `${id} attendance updated` }); - } catch (error) { - logger.error("Error while inserting", error); - res.status(500); - res.json({ err: "Error while inserting in DB" }); - } +} + +async function updateAttendance(req, res) { + const { id } = req.params; + const { ...data } = req.body; + + try { + await updateAttendanceById(id, data); + res.json({ res: `${id} attendance updated` }); + } catch (error) { + logger.error("Error while inserting", error); + res.status(500); + res.json({ err: "Error while inserting in DB" }); } - - async function showAttendance(req, res) { - try { - const attendance = await getAttendances(req.query); - return res.json({ res: attendance }); - } catch (error) { - logger.error("Error while fetching", error); - res.status(500); - return res.json({ err: "Error while fetching the data" }); - } +} + +async function showAttendance(req, res) { + try { + const filter = req.body; + const { limit, page } = req.query; + const attendance = await getAttendances(filter, limit, page); + return res.json({ res: attendance }); + } catch (error) { + logger.error("Error while fetching", error); + res.status(500); + return res.json({ err: "Error while fetching the data" }); } - - export default { - addAttendance, updateAttendance, deleteAttendance, showAttendance, - }; - \ No newline at end of file +} + +export default { + addAttendance, + updateAttendance, + deleteAttendance, + showAttendance, +}; diff --git a/controller/auth.js b/controller/auth.js index 184d21d..84e0fa9 100644 --- a/controller/auth.js +++ b/controller/auth.js @@ -6,6 +6,7 @@ async function login(req, res) { const { id, password } = req.body; try { const userValidated = await authenticateUser(id, password); + console.log(userValidated); const userDetails = { uid: userValidated.uid, name: userValidated.name, @@ -13,6 +14,7 @@ async function login(req, res) { type: userValidated.userType, }; const token = util.generateToken(userDetails, req.ip); + console.log("generated"); userDetails.token = token; res.json({ res: "welcome", user: userDetails }); } catch (error) { @@ -31,7 +33,9 @@ function validateUser(req, res) { if (req.user) { res.json({ res: req.user, msg: "user validated", err: null }); } else { - res.status(401).json({ res: null, msg: "unauthorised", err: "User not authorised" }); + res + .status(401) + .json({ res: null, msg: "unauthorised", err: "User not authorised" }); } } @@ -57,7 +61,8 @@ async function resetPassword(req, res) { } catch (error) { logger.error("Error while updating", error); res.status(500); - if (error.name === "UpdateError") res.json({ err: "Something went wrong while updating password" }); + if (error.name === "UpdateError") + res.json({ err: "Something went wrong while updating password" }); else res.json({ err: "something went wrong" }); } } else { @@ -66,5 +71,8 @@ async function resetPassword(req, res) { } export default { - validateUser, sendOTP, resetPassword, login, + validateUser, + sendOTP, + resetPassword, + login, }; diff --git a/controller/coursework.js b/controller/coursework.js index 1a6188b..6f0cba0 100644 --- a/controller/coursework.js +++ b/controller/coursework.js @@ -10,14 +10,21 @@ import { logger } from "#util"; // Import the logger utility // Controller function to add a new Coursework entity async function addCoursework(req, res) { - const { - student, type, course, task, objectID, activity, marks, - } = req.body; + const { student, type, course, task, objectID, activity, marks } = req.body; try { const newCoursework = await createCoursework({ - student, type, course, task, objectID, activity, marks, + student, + type, + course, + task, + objectID, + activity, + marks, + }); + res.json({ + res: `Added Coursework with ID ${newCoursework.id}`, + id: newCoursework.id, }); - res.json({ res: `Added Coursework with ID ${newCoursework.id}`, id: newCoursework.id }); } catch (error) { logger.error("Error while inserting Coursework", error); res.status(500); @@ -28,9 +35,7 @@ async function addCoursework(req, res) { // Controller function to update a Coursework entity async function updateCoursework(req, res) { const { id } = req.params; - const { - ...data - } = req.body; + const { ...data } = req.body; try { await updateCourseworkById(id, data); res.json({ res: "/Updated Coursework/" }); @@ -43,9 +48,16 @@ async function updateCoursework(req, res) { // Controller function to get a list of Coursework entities async function getCoursework(req, res) { - const filter = req.query; - const courseworkList = await listCoursework(filter); - res.json({ res: courseworkList }); + try { + const filter = req.body; + const { limit, page } = req.query; + const courseworkList = await listCoursework(filter, limit, page); + res.json({ res: courseworkList }); + } catch (error) { + logger.error("Error while fetching", error); + res.status(500); + res.json({ err: "Error while fetching the data" }); + } } // Controller function to delete a Coursework entity diff --git a/controller/department.js b/controller/department.js index f03b190..259d8b8 100644 --- a/controller/department.js +++ b/controller/department.js @@ -1,17 +1,15 @@ import { - updateDepartmentbyid, createnewdepartment, listdepartment, deletedepartment, + updateDepartmentbyid, + createnewdepartment, + listdepartment, + deletedepartment, } from "#services/department"; import { logger } from "#util"; async function addDepartment(req, res) { - const { - name, - acronym, - yearOfStarting, - accreditations, - infrastructures, - } = req.body; + const { name, acronym, yearOfStarting, accreditations, infrastructures } = + req.body; try { const department = await createnewdepartment( name, @@ -47,7 +45,9 @@ async function removedepartmentbyid(req, res) { async function showdepartments(req, res) { try { - const departments = await listdepartment(req.query); + const filter = req.body; + const { limit, page } = req.query; + const departments = await listdepartment(filter, limit, page); return res.json({ res: departments, }); @@ -60,9 +60,7 @@ async function showdepartments(req, res) { async function updatedDepartment(req, res) { const { id } = req.params; - const { - ...data - } = req.body; + const { ...data } = req.body; try { await updateDepartmentbyid(id, data); res.json({ @@ -76,5 +74,8 @@ async function updatedDepartment(req, res) { } export default { - updatedDepartment, showdepartments, removedepartmentbyid, addDepartment, + updatedDepartment, + showdepartments, + removedepartmentbyid, + addDepartment, }; diff --git a/controller/exam.js b/controller/exam.js index 23783d4..2f5c320 100644 --- a/controller/exam.js +++ b/controller/exam.js @@ -7,9 +7,8 @@ import { import { logger } from "#util"; async function addExam(req, res) { - const { - date, startTime, duration, infrastructure, supervisor, course, - } = req.body; + const { date, startTime, duration, infrastructure, supervisor, course } = + req.body; try { const exam = await createExam( date, @@ -41,9 +40,16 @@ async function updateExam(req, res) { } async function getExam(req, res) { - const filter = req.query; - const exam = await examList(filter); - res.json({ res: exam }); + try { + const filter = req.body; + const { limit, page } = req.query; + const exam = await examList(filter, limit, page); + res.json({ res: exam }); + } catch (error) { + logger.error("Error while fetching", error); + res.status(500); + res.json({ err: "Error while fetching the data" }); + } } async function deleteExam(req, res) { diff --git a/controller/faculty.js b/controller/faculty.js index 47e1777..696ddfe 100644 --- a/controller/faculty.js +++ b/controller/faculty.js @@ -1,5 +1,8 @@ import { - createFaculty, facultyList, deleteFacultyById, updateFacultyById, + createFaculty, + facultyList, + deleteFacultyById, + updateFacultyById, } from "#services/faculty"; import { logger } from "#util"; @@ -48,9 +51,16 @@ async function addFaculty(req, res) { } async function getFaculty(req, res) { - const filter = req.query; - const facultylist = await facultyList(filter); - res.json({ res: facultylist }); + try { + const filter = req.body; + const { limit, page } = req.query; + const facultylist = await facultyList(filter, limit, page); + res.json({ res: facultylist }); + } catch (error) { + logger.error("Error while fetching", error); + res.status(500); + res.json({ err: "Error while fetching the data" }); + } } async function deleteFaculty(req, res) { @@ -66,9 +76,7 @@ async function deleteFaculty(req, res) { } async function updateFaculty(req, res) { - const { - id, ...data - } = req.body; + const { id, ...data } = req.body; try { await updateFacultyById(id, data); res.json({ res: `updated faculty with id ${id}` }); @@ -80,5 +88,8 @@ async function updateFaculty(req, res) { } export default { - addFaculty, getFaculty, deleteFaculty, updateFaculty, + addFaculty, + getFaculty, + deleteFaculty, + updateFaculty, }; diff --git a/controller/group.js b/controller/group.js index a0284fc..3fd2f9b 100644 --- a/controller/group.js +++ b/controller/group.js @@ -1,12 +1,13 @@ import { - createGroup, deleteGroupById, groupList, updateGroupById, + createGroup, + deleteGroupById, + groupList, + updateGroupById, } from "#services/group"; import { logger } from "#util"; async function addGroup(req, res) { - const { - title, student, - } = req.body; + const { title, student } = req.body; try { const group = await createGroup(title, student); res.json({ res: `added group ${group.id}`, id: group.id }); @@ -19,9 +20,7 @@ async function addGroup(req, res) { async function updateGroup(req, res) { const { id } = req.params; - const { - ...data - } = req.body; + const { ...data } = req.body; try { await updateGroupById(id, data); res.json({ res: `updated group with id ${id}` }); @@ -33,9 +32,16 @@ async function updateGroup(req, res) { } async function getGroup(req, res) { - const filter = req.query; - const group = await groupList(filter); - res.json({ res: group }); + try { + const filter = req.body; + const { limit, page } = req.query; + const group = await groupList(filter, limit, page); + res.json({ res: group }); + } catch (error) { + logger.error("Error while fetching", error); + res.status(500); + res.json({ err: "Error while fetching the data" }); + } } async function deleteGroup(req, res) { @@ -50,5 +56,8 @@ async function deleteGroup(req, res) { } export default { - addGroup, deleteGroup, getGroup, updateGroup, + addGroup, + deleteGroup, + getGroup, + updateGroup, }; diff --git a/controller/infrastructure.js b/controller/infrastructure.js index ee588d7..ae1b55a 100644 --- a/controller/infrastructure.js +++ b/controller/infrastructure.js @@ -1,15 +1,25 @@ import { - createInfrastructure, deleteInfrastructureById, infrastructureList, updateInfrastructureById, + createInfrastructure, + deleteInfrastructureById, + infrastructureList, + updateInfrastructureById, } from "#services/infrastructure"; import { logger } from "#util"; async function addInfrastructure(req, res) { - const { - name, type, wing, floor, capacity, - } = req.body; + const { name, type, wing, floor, capacity } = req.body; try { - const newInfrastructure = await createInfrastructure(name, type, wing, floor, capacity); - res.json({ res: `added infrastructure ${newInfrastructure.id}`, id: newInfrastructure.id }); + const newInfrastructure = await createInfrastructure( + name, + type, + wing, + floor, + capacity, + ); + res.json({ + res: `added infrastructure ${newInfrastructure.id}`, + id: newInfrastructure.id, + }); } catch (error) { logger.error("Error while inserting", error); res.status(500); @@ -19,9 +29,7 @@ async function addInfrastructure(req, res) { async function updateInfrastructure(req, res) { const { id } = req.params; - const { - ...data - } = req.body; + const { ...data } = req.body; try { await updateInfrastructureById(id, data); res.json({ res: `updated infrastructure with id ${id}` }); @@ -33,9 +41,16 @@ async function updateInfrastructure(req, res) { } async function getInfrastructure(req, res) { - const filter = req.query; - const infralist = await infrastructureList(filter); - res.json({ res: infralist }); + try { + const filter = req.body; + const { limit, page } = req.query; + const infralist = await infrastructureList(filter, limit, page); + res.json({ res: infralist }); + } catch (error) { + logger.error("Error while fetching", error); + res.status(500); + res.json({ err: "Error while fetching the data" }); + } } async function deleteInfrastructure(req, res) { @@ -50,5 +65,8 @@ async function deleteInfrastructure(req, res) { } } export default { - addInfrastructure, deleteInfrastructure, getInfrastructure, updateInfrastructure, + addInfrastructure, + deleteInfrastructure, + getInfrastructure, + updateInfrastructure, }; diff --git a/controller/module.js b/controller/module.js index d455bf8..4f6a877 100644 --- a/controller/module.js +++ b/controller/module.js @@ -1,9 +1,16 @@ -import { getModule, addNewModule, updateModuleById, deleteModuleById } from "#services/module"; +import { + getModule, + addNewModule, + updateModuleById, + deleteModuleById, +} from "#services/module"; import { logger } from "#util"; async function showModule(req, res) { try { - const modules = await getModule(req.query); + const filter = req.body; + const { limit, page } = req.query; + const modules = await getModule(filter, limit, page); return res.json({ res: modules }); } catch (error) { logger.error("Error while fetching", error); @@ -13,9 +20,8 @@ async function showModule(req, res) { } async function addModule(req, res) { - const { - no, name, outcome, contents, hrsPerModule, cognitiveLevels, - } = req.body; + const { no, name, outcome, contents, hrsPerModule, cognitiveLevels } = + req.body; try { const newModule = await addNewModule( no, @@ -35,9 +41,7 @@ async function addModule(req, res) { async function updateModule(req, res) { const { id } = req.params; - const { - ...data - } = req.body; + const { ...data } = req.body; try { await updateModuleById(id, data); res.json({ res: `updated Module with id ${id}` }); @@ -61,5 +65,8 @@ async function deleteModule(req, res) { } export default { - showModule, addModule, updateModule, deleteModule, + showModule, + addModule, + updateModule, + deleteModule, }; diff --git a/controller/notification.js b/controller/notification.js index 1207a6d..ad20f95 100644 --- a/controller/notification.js +++ b/controller/notification.js @@ -41,8 +41,9 @@ async function updateNotification(req, res) { } async function getNotifications(req, res) { - const filter = req.query; - const notificationList = await listNotifications(filter); + const filter = req.body; + const { limit, page } = req.query; + const notificationList = await listNotifications(filter, limit, page); res.json({ res: notificationList }); } diff --git a/controller/organization.js b/controller/organization.js index c6e5673..b89c921 100644 --- a/controller/organization.js +++ b/controller/organization.js @@ -1,15 +1,24 @@ import { - addNewOrganization, deleteOrganizationById, updateOrganizationById, getOrganizations, + addNewOrganization, + deleteOrganizationById, + updateOrganizationById, + getOrganizations, } from "#services/organization"; import { logger } from "#util"; async function addOrganization(req, res) { - const { - parent, startDate, name, accreditation, - } = req.body; + const { parent, startDate, name, accreditation } = req.body; try { - const organization = await addNewOrganization(parent, startDate, name, accreditation); - res.json({ res: `added organization${organization.name}`, id: organization.id }); + const organization = await addNewOrganization( + parent, + startDate, + name, + accreditation, + ); + res.json({ + res: `added organization${organization.name}`, + id: organization.id, + }); } catch (error) { logger.error("Error while inserting", error); res.status(500); @@ -30,9 +39,7 @@ async function deleteOrganization(req, res) { async function updateOrganization(req, res) { const { id } = req.params; - const { - ...data - } = req.body; + const { ...data } = req.body; try { await updateOrganizationById(id, data); @@ -46,7 +53,9 @@ async function updateOrganization(req, res) { async function showOrganization(req, res) { try { - const organization = await getOrganizations(req.query); + const filter = req.body; + const { limit, page } = req.query; + const organization = await getOrganizations(filter, limit, page); return res.json({ res: organization }); } catch (error) { logger.error("Error while fetching", error); @@ -56,5 +65,8 @@ async function showOrganization(req, res) { } export default { - addOrganization, updateOrganization, deleteOrganization, showOrganization, + addOrganization, + updateOrganization, + deleteOrganization, + showOrganization, }; diff --git a/controller/paper.js b/controller/paper.js index 6a6e688..e659bf6 100644 --- a/controller/paper.js +++ b/controller/paper.js @@ -1,16 +1,13 @@ import { - createPaper, updatePaperById, listPaper, deletePaperById, + createPaper, + updatePaperById, + listPaper, + deletePaperById, } from "#services/paper"; import { logger } from "#util"; async function addPaper(req, res) { - const { - answerSheetID, - exam, - student, - checkedBy, - mark, - } = req.body; + const { answerSheetID, exam, student, checkedBy, mark } = req.body; try { const newPaper = await createPaper( answerSheetID, @@ -19,7 +16,10 @@ async function addPaper(req, res) { checkedBy, mark, ); - res.json({ res: `added paper for: ${newPaper.answerSheetID}`, id: newPaper.id }); + res.json({ + res: `added paper for: ${newPaper.answerSheetID}`, + id: newPaper.id, + }); } catch (error) { logger.error("Error while inserting", error); res.status(500); @@ -29,9 +29,7 @@ async function addPaper(req, res) { async function updatePaper(req, res) { const { id } = req.params; - const { - ...data - } = req.body; + const { ...data } = req.body; try { await updatePaperById(id, data); res.json({ res: "Paper updated" }); @@ -43,9 +41,16 @@ async function updatePaper(req, res) { } async function showPaper(req, res) { - const filter = req.query; - const paper = await listPaper(filter); - res.json({ res: paper }); + try { + const filter = req.body; + const { limit, page } = req.query; + const paper = await listPaper(filter, limit, page); + res.json({ res: paper }); + } catch (error) { + logger.error("Error while fetching", error); + res.status(500); + res.json({ err: "Error while fetching the data" }); + } } async function deletePaper(req, res) { @@ -60,5 +65,8 @@ async function deletePaper(req, res) { } export default { - addPaper, updatePaper, showPaper, deletePaper, + addPaper, + updatePaper, + showPaper, + deletePaper, }; diff --git a/controller/practical.js b/controller/practical.js index 9eb55f2..a5f36cb 100644 --- a/controller/practical.js +++ b/controller/practical.js @@ -10,14 +10,19 @@ import { logger } from "#util"; // Import the logger utility // Controller function to add a new Practical entity async function addPractical(req, res) { - const { - no, title, type, hours, cognitiveLevels, - } = req.body; + const { no, title, type, hours, cognitiveLevels } = req.body; try { const newPractical = await createPractical({ - no, title, type, hours, cognitiveLevels, + no, + title, + type, + hours, + cognitiveLevels, + }); + res.json({ + res: `Added Practical with ID ${newPractical.id}`, + id: newPractical.id, }); - res.json({ res: `Added Practical with ID ${newPractical.id}`, id: newPractical.id }); } catch (error) { logger.error("Error while inserting Practical", error); res.status(500); @@ -28,9 +33,7 @@ async function addPractical(req, res) { // Controller function to update a Practical entity async function updatePractical(req, res) { const { id } = req.params; - const { - ...data - } = req.body; + const { ...data } = req.body; try { await updatePracticalById(id, data); res.json({ res: `Updated Practical with ID ${id}` }); @@ -43,8 +46,9 @@ async function updatePractical(req, res) { // Controller function to get a list of Practical entities async function getPractical(req, res) { - const filter = req.query; - const practicalList = await listPractical(filter); + const filter = req.body; + const { limit, page } = req.query; + const practicalList = await listPractical(filter, limit, page); res.json({ res: practicalList }); } diff --git a/controller/semester.js b/controller/semester.js index 79be1fd..3b2363c 100644 --- a/controller/semester.js +++ b/controller/semester.js @@ -1,15 +1,22 @@ import { - createSemester, updateSemesterById, semesterList, deleteSemesterById, + createSemester, + updateSemesterById, + semesterList, + deleteSemesterById, } from "#services/semester"; import { logger } from "#util"; async function addSemester(req, res) { - const { - number, academicYear, type, startDate, endDate, - } = req.body; + const { number, academicYear, type, startDate, endDate } = req.body; try { - const newSemester = await createSemester(number, academicYear, type, startDate, endDate); + const newSemester = await createSemester( + number, + academicYear, + type, + startDate, + endDate, + ); res.json({ res: `added semester ${newSemester.id} `, id: newSemester.id }); } catch (error) { logger.error("Error while inserting", error); @@ -20,9 +27,7 @@ async function addSemester(req, res) { async function updateSemester(req, res) { const { id } = req.params; - const { - ...data - } = req.body; + const { ...data } = req.body; try { await updateSemesterById(id, data); res.json({ res: `Updated Semester with id ${id}` }); @@ -34,8 +39,9 @@ async function updateSemester(req, res) { } async function getSemester(req, res) { - const filter = req.query; - const semlist = await semesterList(filter); + const filter = req.body; + const { limit, page } = req.query; + const semlist = await semesterList(filter, limit, page); res.json({ res: semlist }); } @@ -50,5 +56,8 @@ async function deleteSemester(req, res) { } } export default { - addSemester, deleteSemester, getSemester, updateSemester, + addSemester, + deleteSemester, + getSemester, + updateSemester, }; diff --git a/controller/student.js b/controller/student.js index ea4bbaf..68d81d4 100644 --- a/controller/student.js +++ b/controller/student.js @@ -1,12 +1,14 @@ import { - createStudent, deleteStudentById, studentList, updateStudentById, + createStudent, + deleteStudentById, + studentList, + updateStudentById, } from "#services/student"; import { logger } from "#util"; async function addStudent(req, res) { - const { - ERPID, name, joiningYear, branch, division, rollNo, coursesOpted, - } = req.body; + const { ERPID, name, joiningYear, branch, division, rollNo, coursesOpted } = + req.body; try { const newStudent = await createStudent( ERPID, @@ -27,9 +29,7 @@ async function addStudent(req, res) { async function updateStudent(req, res) { const { id } = req.params; - const { - ...data - } = req.body; + const { ...data } = req.body; try { await updateStudentById(id, data); res.json({ res: `updated Student with id ${id}` }); @@ -41,8 +41,9 @@ async function updateStudent(req, res) { } async function getStudent(req, res) { - const filter = req.query; - const StudList = await studentList(filter); + const filter = req.body; + const { limit, page } = req.query; + const StudList = await studentList(filter, limit, page); res.json({ res: StudList }); } @@ -58,5 +59,8 @@ async function deleteStudent(req, res) { } } export default { - addStudent, deleteStudent, getStudent, updateStudent, + addStudent, + deleteStudent, + getStudent, + updateStudent, }; diff --git a/controller/timetable.js b/controller/timetable.js index ecabef6..e13ea39 100644 --- a/controller/timetable.js +++ b/controller/timetable.js @@ -1,5 +1,8 @@ import { - createTimetable, deleteTimetableById, timetableList, updateTimetableById, + createTimetable, + deleteTimetableById, + timetableList, + updateTimetableById, } from "#services/timetable"; import { logger } from "#util"; @@ -27,7 +30,10 @@ async function addTimetable(req, res) { teabreakStartTime, teabreakDuration, ); - res.json({ res: `added timetable for: ${newTimetable.startDate} to ${newTimetable.endDate}`, id: newTimetable.id }); + res.json({ + res: `added timetable for: ${newTimetable.startDate} to ${newTimetable.endDate}`, + id: newTimetable.id, + }); } catch (error) { logger.error("Error while inserting", error); res.status(500); @@ -37,9 +43,7 @@ async function addTimetable(req, res) { async function updateTimetable(req, res) { const { id } = req.params; - const { - ...data - } = req.body; + const { ...data } = req.body; try { await updateTimetableById(id, data); res.json({ res: "timetable updated" }); @@ -51,8 +55,9 @@ async function updateTimetable(req, res) { } async function getTimetable(req, res) { - const filter = req.query; - const timetable = await timetableList(filter); + const filter = req.body; + const { limit, page } = req.query; + const timetable = await timetableList(filter, limit, page); res.json({ res: timetable }); } @@ -68,5 +73,8 @@ async function deleteTimetable(req, res) { } export default { - addTimetable, deleteTimetable, getTimetable, updateTimetable, + addTimetable, + deleteTimetable, + getTimetable, + updateTimetable, }; diff --git a/controller/topic.js b/controller/topic.js index 5e5dff6..88dd11e 100644 --- a/controller/topic.js +++ b/controller/topic.js @@ -1,62 +1,65 @@ import { - addNewTopic, deleteTopicById, updateTopicById, getTopics, - } from "#services/topic"; - import { logger } from "#util"; - - async function addTopic(req, res) { - const { - title, - } = req.body; - try { - // eslint-disable-next-line max-len - const topic = await addNewTopic(title); - res.json({ res: `added topic ${topic.name}`, id: topic.id }); - } catch (error) { - logger.error("Error while inserting", error); - res.status(500); - res.json({ err: "Error while inserting in DB" }); - } + addNewTopic, + deleteTopicById, + updateTopicById, + getTopics, +} from "#services/topic"; +import { logger } from "#util"; + +async function addTopic(req, res) { + const { title } = req.body; + try { + // eslint-disable-next-line max-len + const topic = await addNewTopic(title); + res.json({ res: `added topic ${topic.name}`, id: topic.id }); + } catch (error) { + logger.error("Error while inserting", error); + res.status(500); + res.json({ err: "Error while inserting in DB" }); } - async function deleteTopic(req, res) { - const { id } = req.params; - try { - await deleteTopicById(id); - res.json({ res: "Topic deleted successfully" }); - } catch (error) { - logger.error("Error while deleting", error); - res.status(500); - res.json({ err: "Error while deleting from DB" }); - } +} +async function deleteTopic(req, res) { + const { id } = req.params; + try { + await deleteTopicById(id); + res.json({ res: "Topic deleted successfully" }); + } catch (error) { + logger.error("Error while deleting", error); + res.status(500); + res.json({ err: "Error while deleting from DB" }); } - - async function updateTopic(req, res) { - const { id } = req.params; - const { - ...data - } = req.body; - - try { - await updateTopicById(id, data); - res.json({ res: `${id} topic updated` }); - } catch (error) { - logger.error("Error while inserting", error); - res.status(500); - res.json({ err: "Error while inserting in DB" }); - } +} + +async function updateTopic(req, res) { + const { id } = req.params; + const { ...data } = req.body; + + try { + await updateTopicById(id, data); + res.json({ res: `${id} topic updated` }); + } catch (error) { + logger.error("Error while inserting", error); + res.status(500); + res.json({ err: "Error while inserting in DB" }); } - - async function showTopic(req, res) { - try { - const topic = await getTopics(req.query); - return res.json({ res: topic }); - } catch (error) { - logger.error("Error while fetching", error); - res.status(500); - return res.json({ err: "Error while fetching the data" }); - } +} + +async function showTopic(req, res) { + try { + const filter = req.body; + const { limit, page } = req.query; + const topic = await getTopics(filter, limit, page); + return res.json({ res: topic }); + } catch (error) { + logger.error("Error while fetching", error); + res.status(500); + return res.json({ err: "Error while fetching the data" }); } - - export default { - addTopic, updateTopic, deleteTopic, showTopic, - }; - \ No newline at end of file +} + +export default { + addTopic, + updateTopic, + deleteTopic, + showTopic, +}; diff --git a/controller/tutorial.js b/controller/tutorial.js index 6a29830..43c8305 100644 --- a/controller/tutorial.js +++ b/controller/tutorial.js @@ -1,12 +1,13 @@ import { - addNewTutorial, deleteTutorialById, updateTutorialById, getTutorials, + addNewTutorial, + deleteTutorialById, + updateTutorialById, + getTutorials, } from "#services/tutorial"; import { logger } from "#util"; async function addTutorial(req, res) { - const { - no, title, hours, cognitiveLevel, - } = req.body; + const { no, title, hours, cognitiveLevel } = req.body; try { // eslint-disable-next-line max-len const tutorial = await addNewTutorial(no, title, hours, cognitiveLevel); @@ -31,9 +32,7 @@ async function deleteTutorial(req, res) { async function updateTutorial(req, res) { const { id } = req.params; - const { - ...data - } = req.body; + const { ...data } = req.body; try { await updateTutorialById(id, data); @@ -47,7 +46,9 @@ async function updateTutorial(req, res) { async function showTutorial(req, res) { try { - const tutorial = await getTutorials(req.query); + const filter = req.body; + const { limit, page } = req.query; + const tutorial = await getTutorials(filter, limit, page); return res.json({ res: tutorial }); } catch (error) { logger.error("Error while fetching", error); @@ -57,5 +58,8 @@ async function showTutorial(req, res) { } export default { - addTutorial, updateTutorial, deleteTutorial, showTutorial, + addTutorial, + updateTutorial, + deleteTutorial, + showTutorial, }; diff --git a/controller/user.js b/controller/user.js index 20efc5c..97b02ae 100644 --- a/controller/user.js +++ b/controller/user.js @@ -2,9 +2,7 @@ import { allUsers, createUser } from "#services/user"; import { logger } from "#util"; async function addUser(req, res) { - const { - name, password, emailId, uid, userType, - } = req.body; + const { name, password, emailId, uid, userType } = req.body; try { const newUser = await createUser(name, password, emailId, uid, userType); res.json({ res: `added user ${newUser.id}` }); @@ -16,7 +14,8 @@ async function addUser(req, res) { } async function getAllUser(req, res) { - const allUser = await allUsers(); + const { limit, page } = req.query; + const allUser = await allUsers(limit, page); res.json({ res: allUser }); } diff --git a/models/accreditation.js b/models/accreditation.js index 2c81583..32cdb2c 100644 --- a/models/accreditation.js +++ b/models/accreditation.js @@ -15,9 +15,8 @@ async function remove(filter) { } async function create(accreditationData) { - const { - name, agencyName, dateofAccreditation, dateofExpiry, - } = accreditationData; + const { name, agencyName, dateofAccreditation, dateofExpiry } = + accreditationData; const accreditation = new Accreditation({ name, agencyName, @@ -28,16 +27,28 @@ async function create(accreditationData) { return accreditationDoc; } -async function read(filter, limit = 1) { - const accreditationDoc = await Accreditation.find(filter).limit(limit); - return accreditationDoc; +async function read(filter, limit = 0, page = 1) { + const accreditationDoc = await Accreditation.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await Accreditation.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: accreditationDoc }; } async function update(filter, updateObject, options = { multi: true }) { - const deleteResult = await Accreditation.updateMany(filter, { $set: updateObject }, options); + const deleteResult = await Accreditation.updateMany( + filter, + { $set: updateObject }, + options, + ); return deleteResult.acknowledged; } export default { - create, read, update, remove, + create, + read, + update, + remove, }; diff --git a/models/activity.js b/models/activity.js index f55c464..e581be7 100644 --- a/models/activity.js +++ b/models/activity.js @@ -1,23 +1,43 @@ import connector from "#models/databaseUtil"; const activitySchema = { - activityBlueprint: { type: connector.Schema.Types.ObjectId, ref: "ActivityBlueprint", required: true }, + activityBlueprint: { + type: connector.Schema.Types.ObjectId, + ref: "ActivityBlueprint", + required: true, + }, startTime: { type: Date, required: true }, duration: { type: Number, required: true }, - course: { type: connector.Schema.Types.ObjectId, ref: "Course", required: true }, - faculty: { type: connector.Schema.Types.ObjectId, ref: "Faculty", required: true }, + course: { + type: connector.Schema.Types.ObjectId, + ref: "Course", + required: true, + }, + faculty: { + type: connector.Schema.Types.ObjectId, + ref: "Faculty", + required: true, + }, type: { type: String, required: true, enum: ["LECTURE", "PRACTICAL", "TUTORIAL"], }, - task: [{ + task: [ + { + type: connector.Schema.Types.ObjectId, + ref: ["Topic", "Practical", "Tutorial"], + required: true, + }, + ], + group: { type: connector.Schema.Types.ObjectId, - ref: ["Topic", "Practical", "Tutorial"], + ref: "Group", required: true, - }], - group: { type: connector.Schema.Types.ObjectId, ref: "Group", required: true }, - students: [{ type: connector.Schema.Types.ObjectId, ref: "Student", required: true }], + }, + students: [ + { type: connector.Schema.Types.ObjectId, ref: "Student", required: true }, + ], }; const Activity = connector.model("Activity", activitySchema); @@ -25,38 +45,65 @@ const Activity = connector.model("Activity", activitySchema); /// crud operation/// // add a activity to the database -async function create(activityData){ +async function create(activityData) { const { - activityBlueprint, startTime,duration,course,faculty,type,task,group,students, - }=activityData; - const activity= new Activity({ - activityBlueprint, startTime,duration,course,faculty,type,task,group,students, + activityBlueprint, + startTime, + duration, + course, + faculty, + type, + task, + group, + students, + } = activityData; + const activity = new Activity({ + activityBlueprint, + startTime, + duration, + course, + faculty, + type, + task, + group, + students, }); - const activityDoc =await activity.save(); + const activityDoc = await activity.save(); return activityDoc; } // Retrieve activity based on a given filter and limit -async function read(filter,limit=1){ - const activityDoc = await Activity.find (filter).limit(limit); - return activityDoc ; +async function read(filter, limit = 0, page = 1) { + const activityDoc = await Activity.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await Activity.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: activityDoc }; } -// update activity based on a given filter -async function update(filter,updateObject,options={multi:true}){ - const updateActivity= await Activity.updateMany(filter,{$set:updateObject},options); -return updateActivity.acknowledged; +// update activity based on a given filter +async function update(filter, updateObject, options = { multi: true }) { + const updateActivity = await Activity.updateMany( + filter, + { $set: updateObject }, + options, + ); + return updateActivity.acknowledged; } // Delete activity based on a given filter -async function remove(filter){ - const deleteActivity= await Activity.deleteMany(filter).exec(); +async function remove(filter) { + const deleteActivity = await Activity.deleteMany(filter).exec(); return deleteActivity.acknowledged; } // export crud functions -export default{ - create,read,update,remove, +export default { + create, + read, + update, + remove, }; - diff --git a/models/activityBlueprint.js b/models/activityBlueprint.js index c5c5831..5f6d557 100644 --- a/models/activityBlueprint.js +++ b/models/activityBlueprint.js @@ -7,7 +7,8 @@ const activityBluePrintSchema = { required: true, validate: { validator: (value) => /^20\d{2}$/.test(value), // changed the valid year format starting from "20" !! - message: (props) => `${props.value} is not a valid year format starting with "2"!`, + message: (props) => + `${props.value} is not a valid year format starting with "2"!`, }, }, type: { enum: ["ODD", "EVEN"], required: true }, @@ -16,7 +17,10 @@ const activityBluePrintSchema = { }; // eslint-disable-next-line no-unused-vars -const ActivityBlueprint = connector.model("ActivityBlueprint", activityBluePrintSchema); +const ActivityBlueprint = connector.model( + "ActivityBlueprint", + activityBluePrintSchema, +); async function remove(filter) { const deleteResult = await ActivityBlueprint.deleteMany(filter); @@ -24,9 +28,8 @@ async function remove(filter) { } async function create(activityBlueprintData) { - const { - number, academicYear, type, startDate, endDate, - } = activityBlueprintData; + const { number, academicYear, type, startDate, endDate } = + activityBlueprintData; const activityblueprint = new ActivityBlueprint({ number, academicYear, @@ -38,16 +41,28 @@ async function create(activityBlueprintData) { return activityblueprintDoc; } -async function read(filter, limit = 1) { - const activityblueprintDoc = await ActivityBlueprint.find(filter).limit(limit); - return activityblueprintDoc; +async function read(filter, limit = 0, page = 1) { + const activityblueprintDoc = await ActivityBlueprint.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await ActivityBlueprint.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: activityblueprintDoc }; } async function update(filter, updateObject, options = { multi: true }) { - const updateResult = await ActivityBlueprint.updateMany(filter, { $set: updateObject }, options); + const updateResult = await ActivityBlueprint.updateMany( + filter, + { $set: updateObject }, + options, + ); return updateResult.acknowledged; } export default { - create, read, update, remove, + create, + read, + update, + remove, }; diff --git a/models/assignment.js b/models/assignment.js index 3f87c05..d1ebd92 100644 --- a/models/assignment.js +++ b/models/assignment.js @@ -18,13 +18,22 @@ async function create(assignmentData) { return assignmentDoc; } -async function read(filter, limit = 1) { - const assignmentDoc = await Assignment.find(filter).limit(limit); - return assignmentDoc; +async function read(filter, limit = 0, page = 1) { + const assignmentDoc = await Assignment.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await Assignment.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: assignmentDoc }; } async function update(filter, updateObject, options = { multi: true }) { - const updateResult = await Assignment.updateMany(filter, { $set: updateObject }, options); + const updateResult = await Assignment.updateMany( + filter, + { $set: updateObject }, + options, + ); return updateResult.acknowledged; } diff --git a/models/attendance.js b/models/attendance.js index 1fa5f49..c1ef29c 100644 --- a/models/attendance.js +++ b/models/attendance.js @@ -3,8 +3,16 @@ import connector from "#models/databaseUtil"; connector.set("debug", true); const attendanceSchema = { - student: { type: connector.Schema.Types.ObjectId, ref: "Student", required: "true" }, - course: { type: connector.Schema.Types.ObjectId, ref: "Course", required: "true" }, + student: { + type: connector.Schema.Types.ObjectId, + ref: "Student", + required: "true", + }, + course: { + type: connector.Schema.Types.ObjectId, + ref: "Course", + required: "true", + }, monthlyAttended: { type: Number, default: 0 }, monthlyOccured: { type: Number, default: 0 }, cumulativeAttended: { type: Number, default: 0 }, @@ -15,7 +23,12 @@ const Attendance = connector.model("Attendance", attendanceSchema); async function create(attendanceData) { const { - student, course, monthlyAttended, monthlyOccured, cumulativeAttended, cumulativeOccured, + student, + course, + monthlyAttended, + monthlyOccured, + cumulativeAttended, + cumulativeOccured, } = attendanceData; const attendance = new Attendance({ student, @@ -29,13 +42,22 @@ async function create(attendanceData) { return attendanceDoc; } -async function read(filter, limit = 1) { - const attendanceDoc = await Attendance.find(filter).limit(limit); - return attendanceDoc; +async function read(filter, limit = 0, page = 1) { + const attendanceDoc = await Attendance.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await Attendance.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: attendanceDoc }; } async function update(filter, updateObject, options = { multi: true }) { - const updateResult = await Attendance.updateMany(filter, { $set: updateObject }, options); + const updateResult = await Attendance.updateMany( + filter, + { $set: updateObject }, + options, + ); return updateResult.acknowledged; } @@ -44,5 +66,8 @@ async function remove(filter) { return deleteResult.acknowledged; } export default { - create, remove, update, read, + create, + remove, + update, + read, }; diff --git a/models/course.js b/models/course.js index 413aaa0..fda2aa0 100644 --- a/models/course.js +++ b/models/course.js @@ -39,13 +39,17 @@ const courseSchema = { }; // virtual for total hours -courseSchema.virtual("totalHours").get(() => this.theoryHours + this.tutorialHours + this.practicalHours); +courseSchema + .virtual("totalHours") + .get(() => this.theoryHours + this.tutorialHours + this.practicalHours); // virtual for theory marks courseSchema.virtual("theoryMarks").get(() => this.ISAMarks + this.ESEMarks); // virtual for total marks -courseSchema.virtual("totalMarks").get(() => this.theoryMarks + this.tutorialMarks + this.practicalMarks); +courseSchema + .virtual("totalMarks") + .get(() => this.theoryMarks + this.tutorialMarks + this.practicalMarks); const Course = connector.model("Course", courseSchema); @@ -57,13 +61,22 @@ async function create(courseData) { return courseDoc; } -async function read(filter, limit = 1) { - const courseDoc = await Course.find(filter).limit(limit); - return courseDoc; +async function read(filter, limit = 0, page = 1) { + const courseDoc = await Course.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await Course.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: courseDoc }; } async function update(filter, updateObject, options = { multi: true }) { - const updateResult = await Course.updateMany(filter, { $set: updateObject }, options); + const updateResult = await Course.updateMany( + filter, + { $set: updateObject }, + options, + ); return updateResult.acknowledged; } diff --git a/models/coursework.js b/models/coursework.js index 1348def..52a36f8 100644 --- a/models/coursework.js +++ b/models/coursework.js @@ -1,12 +1,32 @@ import connector from "#models/databaseUtil"; const courseworkSchema = { - student: { type: connector.Schema.Types.ObjectId, ref: "Student", required: true }, + student: { + type: connector.Schema.Types.ObjectId, + ref: "Student", + required: true, + }, type: { type: String, enum: ["onCampus", "offCampus"], required: true }, - course: { type: connector.Schema.Types.ObjectId, ref: "Course", required: true }, - task: { type: connector.Schema.Types.ObjectId, refPath: "objectID", required: true }, - objectID: { type: String, enum: ["Practical", "Tutorial", "Assignment"], required: true }, - activity: { type: connector.Schema.Types.ObjectId, ref: "Activity", required: true }, + course: { + type: connector.Schema.Types.ObjectId, + ref: "Course", + required: true, + }, + task: { + type: connector.Schema.Types.ObjectId, + refPath: "objectID", + required: true, + }, + objectID: { + type: String, + enum: ["Practical", "Tutorial", "Assignment"], + required: true, + }, + activity: { + type: connector.Schema.Types.ObjectId, + ref: "Activity", + required: true, + }, marks: { type: Number, required: true }, }; @@ -18,9 +38,8 @@ async function remove(filter) { } async function create(courseworkData) { - const { - student, type, course, task, objectID, activity, marks, - } = courseworkData; + const { student, type, course, task, objectID, activity, marks } = + courseworkData; const coursework = new Coursework({ student, type, @@ -34,13 +53,22 @@ async function create(courseworkData) { return courseworkDoc; } -async function read(filter, limit = 1) { - const courseworkDoc = await Coursework.find(filter).limit(limit); - return courseworkDoc; +async function read(filter, limit = 0, page = 1) { + const courseworkDoc = await Coursework.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await Coursework.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: courseworkDoc }; } async function update(filter, updateObject, options = { multi: true }) { - const updateResult = await Coursework.updateMany(filter, { $set: updateObject }, options); + const updateResult = await Coursework.updateMany( + filter, + { $set: updateObject }, + options, + ); return updateResult.acknowledged; } diff --git a/models/department.js b/models/department.js index 3df770b..24ec40e 100644 --- a/models/department.js +++ b/models/department.js @@ -4,25 +4,28 @@ const departmentSchema = { name: { type: String, required: true }, acronym: { type: String, required: true, immutable: true }, yearOfStarting: { type: Date, immutable: true, required: true }, - accreditations: [{ - type: connector.Schema.Types.ObjectId, - ref: "Accreditation", - required: true, - }], - infrastructures: [{ - type: connector.Schema.Types.ObjectId, - ref: "Infrastructure", - required: true, - }], + accreditations: [ + { + type: connector.Schema.Types.ObjectId, + ref: "Accreditation", + required: true, + }, + ], + infrastructures: [ + { + type: connector.Schema.Types.ObjectId, + ref: "Infrastructure", + required: true, + }, + ], }; const Department = connector.model("Department", departmentSchema); // for creating async function create(departmentData) { - const { - name, acronym, yearOfStarting, accreditations, infrastructures, - } = departmentData; + const { name, acronym, yearOfStarting, accreditations, infrastructures } = + departmentData; const department = new Department({ name, acronym, @@ -34,13 +37,22 @@ async function create(departmentData) { return departmentDoc; } -async function read(filter, limit = 1) { - const departmentDoc = await Department.find(filter).limit(limit); - return departmentDoc; +async function read(filter, limit = 0, page = 1) { + const departmentDoc = await Department.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await Department.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: departmentDoc }; } async function update(filter, updateObject, options = { multi: true }) { - const updateResult = await Department.updateMany(filter, { $set: updateObject }, options); + const updateResult = await Department.updateMany( + filter, + { $set: updateObject }, + options, + ); return updateResult.acknowledged; } diff --git a/models/employee/empBank.js b/models/employee/empBank.js index 2bb9140..a7b495b 100644 --- a/models/employee/empBank.js +++ b/models/employee/empBank.js @@ -51,7 +51,7 @@ async function create(employeeBankData) { bankBranch, bankIfsc, bankMicr, - appointmentApproveSgDte, + appointmentApproveSgDte, } = employeeBankData; const empBank = new EmployeeBank({ @@ -61,20 +61,25 @@ async function create(employeeBankData) { bankBranch, bankIfsc, bankMicr, - appointmentApproveSgDte, + appointmentApproveSgDte, }); const empBankDoc = await empBank.save(); return empBankDoc; } -async function read(filter, limit = 1) { - const empBankDoc = employeeBankSchema.find(filter).limit(limit); - return empBankDoc; +async function read(filter, limit = 0, page = 1) { + const empBankDoc = await EmployeeBank.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await EmployeeBank.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: empBankDoc }; } async function update(filter, updateObject, options = { multi: true }) { - const updateResult = await employeeBankSchema.updateMany( + const updateResult = await EmployeeBank.updateMany( filter, { $set: updateObject }, options, @@ -83,7 +88,7 @@ async function update(filter, updateObject, options = { multi: true }) { } async function remove(empBankId) { - const deleteResult = await employeeBankSchema.deleteMany(empBankId); + const deleteResult = await EmployeeBank.deleteMany(empBankId); return deleteResult.acknowledged; } @@ -92,4 +97,4 @@ export default { read, update, remove, -}; \ No newline at end of file +}; diff --git a/models/employee/empCurrentDetail.js b/models/employee/empCurrentDetail.js index fa2d96e..1a7a91e 100644 --- a/models/employee/empCurrentDetail.js +++ b/models/employee/empCurrentDetail.js @@ -1,6 +1,6 @@ import connector from "#models/databaseUtil"; -const employeeCurrentEmployementSchema = { +const employeeCurrentEmploymentSchema = { uid: { type: String, require: true }, date_of_joining: { type: Date, required: true }, department_name: { type: String, required: true }, @@ -11,7 +11,64 @@ const employeeCurrentEmployementSchema = { }; // eslint-disable-next-line no-unused-vars -const employeeCurrentEmployement = connector.model( - "Employee current Employement", - employeeCurrentEmployementSchema, +const EmployeeCurrentEmployment = connector.model( + "EmployeeCurrentEmployement", + employeeCurrentEmploymentSchema, ); + +async function create(employeeCurrentEmploymentData) { + const { + uid, + dateOfJoining, + departmentName, + designation, + jobStatus, + jobProfile, + currentCtc, + } = employeeCurrentEmploymentData; + + const empCurEmp = new EmployeeCurrentEmployment({ + uid, + dateOfJoining, + departmentName, + designation, + jobStatus, + jobProfile, + currentCtc, + }); + + const empCurrentEmploymentDoc = await empCurEmp.save(); + return empCurrentEmploymentDoc; +} + +async function read(filter, limit = 0, page = 1) { + const empCurrentEmploymentDoc = await EmployeeCurrentEmployment.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await EmployeeCurrentEmployment.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: empCurrentEmploymentDoc }; +} + +async function update(filter, updateObject, options = { multi: true }) { + const updateResult = await EmployeeCurrentEmployment.updateMany( + filter, + { $set: updateObject }, + options, + ); + return updateResult.acknowledged; +} + +async function remove(filter) { + const deleteResult = + await EmployeeCurrentEmployment.deleteMany(filter).exec(); + return deleteResult.acknowledged; +} + +export default { + create, + read, + update, + remove, +}; diff --git a/models/employee/empEduHistory.js b/models/employee/empEduHistory.js index 3812f14..ed43b88 100644 --- a/models/employee/empEduHistory.js +++ b/models/employee/empEduHistory.js @@ -30,9 +30,10 @@ const employeeEducationHistorySchema = { }; // eslint-disable-next-line no-unused-vars -const EmployeeEducationHistory = -connector.model("Employee education history", -employeeEducationHistorySchema); +const EmployeeEducationHistory = connector.model( + "Employee education history", + employeeEducationHistorySchema, +); // CRUD Operations @@ -91,31 +92,37 @@ async function create(employeeEducationHistoryData) { pdoc, }); - const empEduHistoryDoc = await empEduHistory.save(); + const empEduHistoryDoc = await empEduHistory.save(); return empEduHistoryDoc; } - -async function read(filter, limit=1) { - const empEduHistoryDoc = employeeEducationHistorySchema.find(filter).limit(limit); - return empEduHistoryDoc; +async function read(filter, limit = 0, page = 1) { + const empEduHistoryDoc = await EmployeeEducationHistory.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await EmployeeEducationHistory.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: empEduHistoryDoc }; } - -async function update(filter, updateObject, options={ multi: true }) { - const updateResult = await employeeEducationHistorySchema.updateMany( +async function update(filter, updateObject, options = { multi: true }) { + const updateResult = await EmployeeEducationHistory.updateMany( filter, - {$set: updateObject}, + { $set: updateObject }, options, ); return updateResult.acknowledged; } async function remove(filter) { - const deleteResult= await employeeEducationHistorySchema.deleteMany(filter).exec(); + const deleteResult = await EmployeeEducationHistory.deleteMany(filter).exec(); return deleteResult.acknowledged; } -export default{ - create, read, update, remove, -}; \ No newline at end of file +export default { + create, + read, + update, + remove, +}; diff --git a/models/employee/empPersonal.js b/models/employee/empPersonal.js index 180db49..d4e3d48 100644 --- a/models/employee/empPersonal.js +++ b/models/employee/empPersonal.js @@ -72,9 +72,14 @@ async function create(employeePersonalData) { return employeePersonalDoc; } -async function read(filter, limit = 1) { - const employeePersonalDoc = await EmployeePersonal.find(filter).limit(limit); - return employeePersonalDoc; +async function read(filter, limit = 0, page = 1) { + const employeePersonalDoc = await EmployeePersonal.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await EmployeePersonal.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: employeePersonalDoc }; } async function update(filter, updateObject, options = { multi: true }) { diff --git a/models/exam.js b/models/exam.js index 5c09f56..e5c2c0b 100644 --- a/models/exam.js +++ b/models/exam.js @@ -29,9 +29,14 @@ async function create(examData) { return examDoc; } -async function read(filter, limit = 1) { - const examDoc = await Exam.find(filter).limit(limit); - return examDoc; +async function read(filter, limit = 0, page = 1) { + const examDoc = await Exam.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await Exam.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: examDoc }; } async function update(filter, updateObject, options = { multi: true }) { diff --git a/models/faculty.js b/models/faculty.js index 74bae6e..c63a316 100644 --- a/models/faculty.js +++ b/models/faculty.js @@ -1,48 +1,79 @@ -import connector from "#models/databaseUtil"; - -const facultySchema = { - ERPID: { type: String, required: true }, - dateOfJoining: { type: Date, required: true, default: Date.now }, - dateOfLeaving: { type: Date, required: false }, - profileLink: { type: String, required: true }, - qualifications: { type: [String], required: true }, - totalExperience: { type: Number, required: true }, - achievements: { type: [String], required: true }, - areaOfSpecialization: { type: [String], required: true }, - papersPublishedPG: { type: Number, required: true }, - papersPublishedUG: { type: Number, required: true }, - department: { type: connector.Schema.Types.ObjectId, ref: "Department", required: true }, - preferredSubjects: [{ type: connector.Schema.Types.ObjectId, ref: "Course", required: true }], - designation: { type: [String], enum: ["HOD", "Assistant Professor", "Associate Professor", "Activity Head"], required: true }, - natureOfAssociation: { type: String, enum: ["Regular", "Contract", "Adjunct"], required: true }, - additionalResponsibilities: { type: String, required: true }, -}; - -const Faculty = connector.model("Faculty", facultySchema); - -// CRUD Operations - -async function remove(filter) { - const deleteResult = await Faculty.deleteMany(filter); - return deleteResult.acknowledged; -} - -async function create(facultyData) { - const faculty = new Faculty(facultyData); - const facultyDoc = await faculty.save(); - return facultyDoc; -} - -async function read(filter, limit = 1) { - const facultyDoc = await Faculty.find(filter).limit(limit); - return facultyDoc; -} - -async function update(filter, updateObject, options = { multi: true }) { - const updateResult = await Faculty.updateMany(filter, { $set: updateObject }, options); - return updateResult.acknowledged; -} - -export default { - create, read, update, remove, -}; +import connector from "#models/databaseUtil"; + +const facultySchema = { + ERPID: { type: String, required: true }, + dateOfJoining: { type: Date, required: true, default: Date.now }, + dateOfLeaving: { type: Date, required: false }, + profileLink: { type: String, required: true }, + qualifications: { type: [String], required: true }, + totalExperience: { type: Number, required: true }, + achievements: { type: [String], required: true }, + areaOfSpecialization: { type: [String], required: true }, + papersPublishedPG: { type: Number, required: true }, + papersPublishedUG: { type: Number, required: true }, + department: { + type: connector.Schema.Types.ObjectId, + ref: "Department", + required: true, + }, + preferredSubjects: [ + { type: connector.Schema.Types.ObjectId, ref: "Course", required: true }, + ], + designation: { + type: [String], + enum: [ + "HOD", + "Assistant Professor", + "Associate Professor", + "Activity Head", + ], + required: true, + }, + natureOfAssociation: { + type: String, + enum: ["Regular", "Contract", "Adjunct"], + required: true, + }, + additionalResponsibilities: { type: String, required: true }, +}; + +const Faculty = connector.model("Faculty", facultySchema); + +// CRUD Operations + +async function remove(filter) { + const deleteResult = await Faculty.deleteMany(filter); + return deleteResult.acknowledged; +} + +async function create(facultyData) { + const faculty = new Faculty(facultyData); + const facultyDoc = await faculty.save(); + return facultyDoc; +} + +async function read(filter, limit = 0, page = 1) { + const facultyDoc = await Faculty.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await Faculty.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: facultyDoc }; +} + +async function update(filter, updateObject, options = { multi: true }) { + const updateResult = await Faculty.updateMany( + filter, + { $set: updateObject }, + options, + ); + return updateResult.acknowledged; +} + +export default { + create, + read, + update, + remove, +}; diff --git a/models/group.js b/models/group.js index 57cfed1..3a62f77 100644 --- a/models/group.js +++ b/models/group.js @@ -2,7 +2,9 @@ import connector from "#models/databaseUtil"; const groupSchema = { title: { type: String, required: true }, - students: [{ type: connector.Schema.Types.ObjectId, ref: "Student", required: true }], + students: [ + { type: connector.Schema.Types.ObjectId, ref: "Student", required: true }, + ], }; const Group = connector.model("Group", groupSchema); @@ -13,13 +15,22 @@ async function create(groupData) { return groupDoc; } -async function read(filter, limit = 1) { - const groupDoc = await Group.find(filter).limit(limit); - return groupDoc; +async function read(filter, limit = 0, page = 1) { + const groupDoc = await Group.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await Group.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: groupDoc }; } async function update(filter, updateObject, options = { multi: true }) { - const updateResult = await Group.updateMany(filter, { $set: updateObject }, options); + const updateResult = await Group.updateMany( + filter, + { $set: updateObject }, + options, + ); return updateResult.acknowledged; } async function remove(groupId) { diff --git a/models/infrastructure.js b/models/infrastructure.js index b954f67..299fb17 100644 --- a/models/infrastructure.js +++ b/models/infrastructure.js @@ -16,9 +16,7 @@ async function remove(filter) { } async function create(infrastructureData) { - const { - name, type, wing, floor, capacity, - } = infrastructureData; + const { name, type, wing, floor, capacity } = infrastructureData; const infrastructure = new Infrastructure({ name, type, @@ -30,16 +28,28 @@ async function create(infrastructureData) { return infrastructureDoc; } -async function read(filter, limit = 1) { - const infrastructureDoc = await Infrastructure.find(filter).limit(limit); - return infrastructureDoc; +async function read(filter, limit = 0, page = 1) { + const infrastructureDoc = await Infrastructure.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await Infrastructure.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: infrastructureDoc }; } async function update(filter, updateObject, options = { multi: true }) { - const updateResult = await Infrastructure.updateMany(filter, { $set: updateObject }, options); + const updateResult = await Infrastructure.updateMany( + filter, + { $set: updateObject }, + options, + ); return updateResult.acknowledged; } export default { - create, read, update, remove, + create, + read, + update, + remove, }; diff --git a/models/module.js b/models/module.js index 8aa1a94..c72c585 100644 --- a/models/module.js +++ b/models/module.js @@ -6,11 +6,13 @@ const moduleSchema = { outcome: { type: String, required: true }, contents: [{ type: String, required: true }], hrsPerModule: { type: Number, required: true }, - cognitiveLevels: [{ - type: String, - required: true, - enum: ["L1", "L2", "L3", "L4", "L5", "L6"], - }], + cognitiveLevels: [ + { + type: String, + required: true, + enum: ["L1", "L2", "L3", "L4", "L5", "L6"], + }, + ], }; const Module = connector.model("Module", moduleSchema); @@ -21,9 +23,8 @@ async function remove(filter) { } async function create(moduleData) { - const { - no, name, outcome, contents, hrsPerModule, cognitiveLevels, - } = moduleData; + const { no, name, outcome, contents, hrsPerModule, cognitiveLevels } = + moduleData; const module = new Module({ no, name, @@ -36,13 +37,22 @@ async function create(moduleData) { return moduleDoc; } -async function read(filter, limit = 1) { - const moduleDoc = await Module.find(filter).limit(limit); - return moduleDoc; +async function read(filter, limit = 0, page = 1) { + const moduleDoc = await Module.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await Module.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: moduleDoc }; } async function update(filter, updateObject, options = { multi: true }) { - const updateResult = await Module.updateMany(filter, { $set: updateObject }, options); + const updateResult = await Module.updateMany( + filter, + { $set: updateObject }, + options, + ); return updateResult.acknowledged; } diff --git a/models/notification.js b/models/notification.js index d6b31f6..8cac4fe 100644 --- a/models/notification.js +++ b/models/notification.js @@ -32,34 +32,45 @@ const Notification = connector.model("Notification", notificationSchema); // CRUD Operations async function create(notificationData) { - const{ - data,title,from,type,filter, - } =notificationData; - const notification=new Notification({ - data,title,from,type,filter, - }); - const notificationDOC=await notification.save(); - return notificationDOC; - } - - async function read(filter, limit = 1) { - const notificationDoc = await Notification.find(filter).limit(limit); - return notificationDoc; - } - - async function update(filter, updateObject, options = { multi: true }) { - const updateResult = await Notification.updateMany(filter, { $set: updateObject }, options); - return updateResult.acknowledged; - } - - async function remove(filter) { - const deleteResult = await Notification.deleteMany(filter); - return deleteResult.acknowledged; - } - - export default { - create, - read, - update, - remove, - }; + const { data, title, from, type, filter } = notificationData; + const notification = new Notification({ + data, + title, + from, + type, + filter, + }); + const notificationDOC = await notification.save(); + return notificationDOC; +} + +async function read(filter, limit = 0, page = 1) { + const notificationDoc = await Notification.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await Notification.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: notificationDoc }; +} + +async function update(filter, updateObject, options = { multi: true }) { + const updateResult = await Notification.updateMany( + filter, + { $set: updateObject }, + options, + ); + return updateResult.acknowledged; +} + +async function remove(filter) { + const deleteResult = await Notification.deleteMany(filter); + return deleteResult.acknowledged; +} + +export default { + create, + read, + update, + remove, +}; diff --git a/models/organization.js b/models/organization.js index acd6bfe..615857e 100644 --- a/models/organization.js +++ b/models/organization.js @@ -1,10 +1,20 @@ import connector from "#models/databaseUtil"; const organizationSchema = { - parent: { type: connector.Schema.Types.ObjectId, ref: "Organization", required: "true" }, + parent: { + type: connector.Schema.Types.ObjectId, + ref: "Organization", + required: "true", + }, startDate: { type: Date, required: true }, name: { type: String, required: true }, - accreditations: [{ type: connector.Schema.Types.ObjectId, ref: "Accrediation", required: "true" }], + accreditations: [ + { + type: connector.Schema.Types.ObjectId, + ref: "Accrediation", + required: "true", + }, + ], }; const Organization = connector.model("Organization", organizationSchema); @@ -15,9 +25,7 @@ async function remove(filter) { } async function create(organizationData) { - const { - parent, startDate, name, accreditation, - } = organizationData; + const { parent, startDate, name, accreditation } = organizationData; const organization = new Organization({ parent, startDate, @@ -28,16 +36,28 @@ async function create(organizationData) { return organizationDoc; } -async function read(filter, limit = 1) { - const organizationDoc = await Organization.find(filter).limit(limit); - return organizationDoc; +async function read(filter, limit = 0, page = 1) { + const organizationDoc = await Organization.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await Organization.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: organizationDoc }; } async function update(filter, updateObject, options = { multi: true }) { - const updateResult = await Organization.updateMany(filter, { $set: updateObject }, options); + const updateResult = await Organization.updateMany( + filter, + { $set: updateObject }, + options, + ); return updateResult.acknowledged; } export default { - create, read, update, remove, + create, + read, + update, + remove, }; diff --git a/models/paper.js b/models/paper.js index 1bb2d46..29785c0 100644 --- a/models/paper.js +++ b/models/paper.js @@ -2,9 +2,15 @@ import connector from "#models/databaseUtil"; const paperSchema = { answerSheetID: { type: String, required: true }, - exam: [{ type: connector.Schema.Types.ObjectId, ref: "Exam", required: true }], - student: [{ type: connector.Schema.Types.ObjectId, ref: "Student", required: true }], - checkedBy: [{ type: connector.Schema.Types.ObjectId, ref: "Faculty", required: true }], + exam: [ + { type: connector.Schema.Types.ObjectId, ref: "Exam", required: true }, + ], + student: [ + { type: connector.Schema.Types.ObjectId, ref: "Student", required: true }, + ], + checkedBy: [ + { type: connector.Schema.Types.ObjectId, ref: "Faculty", required: true }, + ], mark: { type: Number, required: true }, }; @@ -18,9 +24,7 @@ async function remove(filter) { } async function create(paperData) { - const { - answerSheetID, exam, student, checkedBy, mark, - } = paperData; + const { answerSheetID, exam, student, checkedBy, mark } = paperData; const paper = new Paper({ answerSheetID, exam, @@ -32,16 +36,28 @@ async function create(paperData) { return paperDoc; } -async function read(filter, limit = 1) { - const paperDoc = await Paper.find(filter).limit(limit); - return paperDoc; +async function read(filter, limit = 0, page = 1) { + const paperDoc = await Paper.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await Paper.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: paperDoc }; } async function update(filter, updateObject, options = { multi: true }) { - const updateResult = await Paper.updateMany(filter, { $set: updateObject }, options); + const updateResult = await Paper.updateMany( + filter, + { $set: updateObject }, + options, + ); return updateResult.acknowledged; } export default { - create, read, update, remove, + create, + read, + update, + remove, }; diff --git a/models/practical.js b/models/practical.js index 0103789..199e97c 100644 --- a/models/practical.js +++ b/models/practical.js @@ -5,11 +5,13 @@ const practicalSchema = { type: { type: String, required: true }, title: { type: String, required: true }, hours: { type: Number, required: true }, - cognitiveLevels: [{ - type: String, - required: true, - enum: ["L1", "L2", "L3", "L4", "L5", "L6"], - }], + cognitiveLevels: [ + { + type: String, + required: true, + enum: ["L1", "L2", "L3", "L4", "L5", "L6"], + }, + ], }; // eslint-disable-next-line no-unused-vars @@ -22,9 +24,7 @@ async function remove(filter) { } async function create(practicalData) { - const { - no, type, title, hours, cognitiveLevels, - } = practicalData; + const { no, type, title, hours, cognitiveLevels } = practicalData; const practical = new Practical({ no, type, @@ -36,16 +36,31 @@ async function create(practicalData) { return practicalDoc; } -async function read(filter, limit = 1) { - const practicalDoc = await Practical.find(filter).limit(limit); - return practicalDoc; +async function read(filter, limit = 0, page = 1) { + const practicalDoc = await Practical.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await Practical.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: practicalDoc }; } async function update(filter, updateObject, options = { multi: true }) { - const updateResult = await Practical.updateMany(filter, { $set: updateObject }, options); + const updateResult = await Practical.updateMany( + filter, + { $set: updateObject }, + options, + ); return updateResult.acknowledged; } +// create({no: 2, type: 'test4', title: 'test4', hours: 2, cognitiveLevels: ['L3']}) +// read({title: 'test1'}) + export default { - create, read, update, remove, + create, + read, + update, + remove, }; diff --git a/models/semester.js b/models/semester.js index fb43dd7..b340626 100644 --- a/models/semester.js +++ b/models/semester.js @@ -7,7 +7,8 @@ const semesterSchema = { required: true, validate: { validator: (value) => /^20\d{2}$/.test(value), - message: (props) => `${props.value} is not a valid year format starting with "2"!`, + message: (props) => + `${props.value} is not a valid year format starting with "2"!`, }, }, type: { type: String, enum: ["ODD", "EVEN"], required: true }, @@ -21,32 +22,34 @@ const Semester = connector.model("Semester", semesterSchema); // CURD operations async function create(semesterData) { - const { - number, - academicYear, - type, - startDate, - endDate, - } = semesterData; + const { number, academicYear, type, startDate, endDate } = semesterData; const semester = new Semester({ number, academicYear, type, startDate, endDate, - }); const semesterDoc = await semester.save(); return semesterDoc; } -async function read(filter, limit = 1) { - const semesterDoc = await Semester.find(filter).limit(limit); - return semesterDoc; +async function read(filter, limit = 0, page = 1) { + const semesterDoc = await Semester.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await Semester.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: semesterDoc }; } async function update(filter, updateObject, options = { multi: true }) { - const updateResult = await Semester.updateMany(filter, { $set: updateObject }, options); + const updateResult = await Semester.updateMany( + filter, + { $set: updateObject }, + options, + ); return updateResult.acknowledged; } @@ -55,5 +58,8 @@ async function remove(filter) { return deleteResult.acknowledged; } export default { - create, remove, update, read, + create, + remove, + update, + read, }; diff --git a/models/student.js b/models/student.js index c07c264..afdab1f 100644 --- a/models/student.js +++ b/models/student.js @@ -4,10 +4,16 @@ 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 }, + 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 }], + coursesOpted: [ + { type: connector.Schema.Types.ObjectId, ref: "Course", required: true }, + ], }; // eslint-disable-next-line no-unused-vars @@ -22,9 +28,8 @@ async function remove(filter) { } async function create(studentData) { - const { - ERPID, name, joiningYear, branch, division, rollNo, coursesOpted, - } = studentData; + const { ERPID, name, joiningYear, branch, division, rollNo, coursesOpted } = + studentData; const student = new Student({ ERPID, name, @@ -38,16 +43,28 @@ async function create(studentData) { return studentDoc; } -async function read(filter, limit = 1) { - const studentDoc = await Student.find(filter).limit(limit); - return studentDoc; +async function read(filter, limit = 0, page = 1) { + const studentDoc = await Student.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await Student.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: studentDoc }; } async function update(filter, updateObject, options = { multi: true }) { - const updateResult = await Student.updateMany(filter, { $set: updateObject }, options); + const updateResult = await Student.updateMany( + filter, + { $set: updateObject }, + options, + ); return updateResult.acknowledged; } export default { - create, read, update, remove, + create, + read, + update, + remove, }; diff --git a/models/student/stdBank.js b/models/student/stdBank.js index f4b5fa0..f998afb 100644 --- a/models/student/stdBank.js +++ b/models/student/stdBank.js @@ -37,14 +37,8 @@ const studentBankSchema = { const StudentBank = connector.model("Student bank", studentBankSchema); async function create(studentBankData) { - const { - uid, - bankName, - bankAccount, - bankBranch, - bankIfsc, - bankMicr, - } = studentBankData; + const { uid, bankName, bankAccount, bankBranch, bankIfsc, bankMicr } = + studentBankData; const stdBank = new StudentBank({ uid, @@ -59,13 +53,18 @@ async function create(studentBankData) { return stdBankDoc; } -async function read(filter, limit = 1) { - const stdBankDoc = studentBankSchema.find(filter).limit(limit); - return stdBankDoc; +async function read(filter, limit = 0, page = 1) { + const stdBankDoc = await StudentBank.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await StudentBank.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: stdBankDoc }; } async function update(filter, updateObject, options = { multi: true }) { - const updateResult = await studentBankSchema.updateMany( + const updateResult = await StudentBank.updateMany( filter, { $set: updateObject }, options, @@ -74,7 +73,7 @@ async function update(filter, updateObject, options = { multi: true }) { } async function remove(stdBankId) { - const deleteResult = await studentBankSchema.deleteMany(stdBankId); + const deleteResult = await StudentBank.deleteMany(stdBankId); return deleteResult.acknowledged; } @@ -83,4 +82,4 @@ export default { read, update, remove, -}; \ No newline at end of file +}; diff --git a/models/student/stdCollege.js b/models/student/stdCollege.js index 64f9f91..8ef0fba 100644 --- a/models/student/stdCollege.js +++ b/models/student/stdCollege.js @@ -97,13 +97,18 @@ async function create(studentCollegeData) { return stdCollegeDoc; } -async function read(filter, limit = 1) { - const stdCollegeDoc = studentCollegeSchema.find(filter).limit(limit); - return stdCollegeDoc; +async function read(filter, limit = 0, page = 1) { + const stdCollegeDoc = await StudentCollege.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await StudentCollege.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: stdCollegeDoc }; } async function update(filter, updateObject, options = { multi: true }) { - const updateResult = await studentCollegeSchema.updateMany( + const updateResult = await StudentCollege.updateMany( filter, { $set: updateObject }, options, @@ -112,7 +117,7 @@ async function update(filter, updateObject, options = { multi: true }) { } async function remove(stdCollegeId) { - const deleteResult = await studentCollegeSchema.deleteMany(stdCollegeId); + const deleteResult = await StudentCollege.deleteMany(stdCollegeId); return deleteResult.acknowledged; } diff --git a/models/student/stdEduHistory.js b/models/student/stdEduHistory.js index 821bc24..9fca7c0 100644 --- a/models/student/stdEduHistory.js +++ b/models/student/stdEduHistory.js @@ -55,7 +55,10 @@ const studentEducationSchema = { }, }; -const StudentEducation = connector.model("Student education", studentEducationSchema); +const StudentEducation = connector.model( + "Student education", + studentEducationSchema, +); async function create(studentEducationData) { const { @@ -165,14 +168,18 @@ async function create(studentEducationData) { lastSchoolCollegeAttended, }, }); - const stdEducationDoc = await stdEducation.save(); - return stdEducationDoc; - + const stdEducationDoc = await stdEducation.save(); + return stdEducationDoc; } -async function read(filter, limit = 1) { - const stdEducationDoc = studentEducationSchema.find(filter).limit(limit); - return stdEducationDoc; +async function read(filter, limit = 0, page = 1) { + const stdEducationDoc = await StudentEducation.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await StudentEducation.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: stdEducationDoc }; } async function update(filter, updateObject, options = { multi: true }) { diff --git a/models/student/stdMedHistory.js b/models/student/stdMedHistory.js index 3a03906..4d3f63a 100644 --- a/models/student/stdMedHistory.js +++ b/models/student/stdMedHistory.js @@ -45,9 +45,14 @@ async function create(studentMedicalData) { return medicalHistoryDoc; } -async function read(filter, limit = 1) { - const medicalHistoryDoc = await MedicalHistory.find(filter).limit(limit); - return medicalHistoryDoc; +async function read(filter, limit = 0, page = 1) { + const medicalHistoryDoc = await MedicalHistory.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await MedicalHistory.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: medicalHistoryDoc }; } async function update(filter, updateObject, options = { multi: true }) { diff --git a/models/student/stdPersonal.js b/models/student/stdPersonal.js index 0c6e861..3659109 100644 --- a/models/student/stdPersonal.js +++ b/models/student/stdPersonal.js @@ -253,14 +253,23 @@ async function create(studentData) { } // Retrieve student personal details based on a given filter and limit -async function read(filter, limit = 1) { - const studentDoc = await StdPersonal.find(filter).limit(limit); - return studentDoc; +async function read(filter, limit = 0, page = 1) { + const studentDoc = await StdPersonal.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await StdPersonal.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: studentDoc }; } -// update student personal details based on a given filter +// update student personal details based on a given filter async function update(filter, updateObject, options = { multi: true }) { - const updateStudent = await StdPersonal.updateMany(filter, { $set: updateObject }, options); + const updateStudent = await StdPersonal.updateMany( + filter, + { $set: updateObject }, + options, + ); return updateStudent.acknowledged; } @@ -273,8 +282,8 @@ async function remove(filter) { // export crud functions export default { - create, read, update, remove, + create, + read, + update, + remove, }; - - - diff --git a/models/timetable.js b/models/timetable.js index 854bf9b..44d1510 100644 --- a/models/timetable.js +++ b/models/timetable.js @@ -58,13 +58,22 @@ async function create(timetableData) { return timetableDoc; } -async function read(filter, limit = 1) { - const timetableDoc = await Timetable.find(filter).limit(limit); - return timetableDoc; +async function read(filter, limit = 0, page = 1) { + const timetableDoc = await Timetable.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await Timetable.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: timetableDoc }; } async function update(filter, updateObject, options = { multi: true }) { - const updateResult = await Timetable.updateMany(filter, { $set: updateObject }, options); + const updateResult = await Timetable.updateMany( + filter, + { $set: updateObject }, + options, + ); return updateResult.acknowledged; } diff --git a/models/topic.js b/models/topic.js index 6cca60a..848962b 100644 --- a/models/topic.js +++ b/models/topic.js @@ -8,9 +8,7 @@ const Topic = connector.model("Topic", topicSchema); // CURD operations async function create(topicData) { - const { - title, - } = topicData; + const { title } = topicData; const topic = new Topic({ title, }); @@ -18,13 +16,22 @@ async function create(topicData) { return topicDoc; } -async function read(filter, limit = 1) { - const topicDoc = await Topic.find(filter).limit(limit); - return topicDoc; +async function read(filter, limit = 0, page = 1) { + const topicDoc = await Topic.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await Topic.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: topicDoc }; } async function update(filter, updateObject, options = { multi: true }) { - const updateResult = await Topic.updateMany(filter, { $set: updateObject }, options); + const updateResult = await Topic.updateMany( + filter, + { $set: updateObject }, + options, + ); return updateResult.acknowledged; } @@ -33,5 +40,8 @@ async function remove(filter) { return deleteResult.acknowledged; } export default { - create, remove, update, read, + create, + remove, + update, + read, }; diff --git a/models/tutorial.js b/models/tutorial.js index 7554012..a03584e 100644 --- a/models/tutorial.js +++ b/models/tutorial.js @@ -4,11 +4,13 @@ const tutorialSchema = { no: { type: Number, required: true }, title: { type: String, unique: true, required: true }, hours: { type: Number, required: true }, - cognitiveLevel: [{ - type: String, - enum: ["L1", "L2", "L3", "L4", "L5", "L6"], - default: "L1", - }], + cognitiveLevel: [ + { + type: String, + enum: ["L1", "L2", "L3", "L4", "L5", "L6"], + default: "L1", + }, + ], }; // eslint-disable-next-line no-unused-vars @@ -24,14 +26,23 @@ async function create(tutorialData) { } // Retrieve tutorials based on a given filter and limit -async function read(filter, limit = 1) { - const tutorialDoc = await Tutorial.find(filter).limit(limit); - return tutorialDoc; +async function read(filter, limit = 0, page = 1) { + const tutorialDoc = await Tutorial.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await Tutorial.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: tutorialDoc }; } // Update tutorials based on a given filter and update data async function update(filter, updateObject, options = { multi: true }) { - const updateResult = await Tutorial.updateMany(filter, { $set: updateObject }, options); + const updateResult = await Tutorial.updateMany( + filter, + { $set: updateObject }, + options, + ); return updateResult.acknowledged; } diff --git a/models/user.js b/models/user.js index 0e1bd33..00c2f24 100644 --- a/models/user.js +++ b/models/user.js @@ -37,9 +37,14 @@ async function create(userData) { return userDoc; } -async function read(filter, limit = 1) { - const userDoc = await User.find(filter).limit(limit); - return userDoc; +async function read(filter, limit = 0, page = 1) { + const userDoc = await User.find(filter) + .limit(limit) + .skip((page - 1) * limit) + .exec(); + const count = await User.count(); + const totalPages = Math.ceil(count / limit); + return { totalPages, data: userDoc }; } async function update(filter, updateObject, options = { multi: true }) { diff --git a/services/accreditation.js b/services/accreditation.js index ae7e5ba..310d505 100644 --- a/services/accreditation.js +++ b/services/accreditation.js @@ -1,7 +1,12 @@ import Accreditation from "#models/accreditation"; import databaseError from "#error/database"; -export async function addNewAccreditation(name, agencyName, dateofAccreditation, dateofExpiry) { +export async function addNewAccreditation( + name, + agencyName, + dateofAccreditation, + dateofExpiry, +) { const newAccreditation = await Accreditation.create({ name, agencyName, @@ -14,8 +19,8 @@ export async function addNewAccreditation(name, agencyName, dateofAccreditation, throw new databaseError.DataEntryError("Add Accreditation"); } -export async function getAccreditations(filter) { - const accreditations = await Accreditation.read(filter); +export async function getAccreditations(filter, limit, page) { + const accreditations = await Accreditation.read(filter, limit, page); if (accreditations) { return accreditations; } diff --git a/services/activity.js b/services/activity.js index 0c3a3a1..10ceab8 100644 --- a/services/activity.js +++ b/services/activity.js @@ -1,33 +1,51 @@ -import Activity from "#models/activity" ; +import Activity from "#models/activity"; import databaseError from "#error/database"; -export async function createActivity (activityBlueprint,startTime,duration,course,faculty,type,task,group,students){ - const newActivity = await Activity.create({ - activityBlueprint,startTime,duration,course,faculty,task,type,group,students, - }); - if (newActivity){ - return newActivity; - } - throw new databaseError.DataEntryError("actvity"); +export async function createActivity( + activityBlueprint, + startTime, + duration, + course, + faculty, + type, + task, + group, + students, +) { + const newActivity = await Activity.create({ + activityBlueprint, + startTime, + duration, + course, + faculty, + task, + type, + group, + students, + }); + if (newActivity) { + return newActivity; + } + throw new databaseError.DataEntryError("actvity"); } -export async function updateActivityById(id,data){ -const updated= await Activity.update({_id:id},data); -if (updated){ +export async function updateActivityById(id, data) { + const updated = await Activity.update({ _id: id }, data); + if (updated) { return updated; -} -throw new databaseError.DataEntryError("activity"); + } + throw new databaseError.DataEntryError("activity"); } -export async function activityList(filter){ - const activitylist = await Activity.read(filter,0); - return activitylist; +export async function activityList(filter, limit, page) { + const activitylist = await Activity.read(filter, limit, page); + return activitylist; } -export async function deleteActivityById(id){ - const deleted = await Activity.remove({_id:id}); - if(deleted){ - return deleted; - } - throw new databaseError.DataDeleteError("activity"); -} \ No newline at end of file +export async function deleteActivityById(id) { + const deleted = await Activity.remove({ _id: id }); + if (deleted) { + return deleted; + } + throw new databaseError.DataDeleteError("activity"); +} diff --git a/services/assignment.js b/services/assignment.js index 575a4db..688de18 100644 --- a/services/assignment.js +++ b/services/assignment.js @@ -3,7 +3,10 @@ import databaseError from "#error/database"; export async function createAssignment(no, title, type, marks) { const newAssignment = await Assignment.create({ - no, title, type, marks, + no, + title, + type, + marks, }); if (newAssignment.title === title) { return newAssignment; @@ -19,8 +22,8 @@ export async function updateAssignmentById(id, data) { throw new databaseError.DataEntryError("assignment"); } -export async function assignmentList(filter) { - const assignmentlist = await Assignment.read(filter, 0); +export async function assignmentList(filter, limit, page) { + const assignmentlist = await Assignment.read(filter, limit, page); return assignmentlist; } diff --git a/services/attendance.js b/services/attendance.js index 184258f..62dc4f5 100644 --- a/services/attendance.js +++ b/services/attendance.js @@ -1,7 +1,14 @@ import Attendance from "#models/attendance"; import databaseError from "#error/database"; -export async function addNewAttendance( student, course, monthlyAttended, monthlyOccured, cumulativeAttended, cumulativeOccured) { +export async function addNewAttendance( + student, + course, + monthlyAttended, + monthlyOccured, + cumulativeAttended, + cumulativeOccured, +) { const newAttendance = await Attendance.create({ student, course, @@ -16,8 +23,8 @@ export async function addNewAttendance( student, course, monthlyAttended, monthl throw new databaseError.DataEntryError("Add Attendance"); } -export async function getAttendances(filter) { - const attendances = await Attendance.read(filter); +export async function getAttendances(filter, limit, page) { + const attendances = await Attendance.read(filter, limit, page); if (attendances) { return attendances; } diff --git a/services/coursework.js b/services/coursework.js index b4b1620..5d6120a 100644 --- a/services/coursework.js +++ b/services/coursework.js @@ -4,11 +4,23 @@ import databaseError from "#error/database"; // Service function to create a new Coursework entity export async function createCoursework({ - student, type, course, task, objectID, activity, marks, + student, + type, + course, + task, + objectID, + activity, + marks, }) { try { const newCoursework = await Coursework.create({ - student, type, course, task, objectID, activity, marks, + student, + type, + course, + task, + objectID, + activity, + marks, }); return newCoursework; } catch (error) { @@ -30,9 +42,9 @@ export async function updateCourseworkById(id, data) { } // Service function to retrieve a list of Coursework entities based on filters -export async function listCoursework(filter) { +export async function listCoursework(filter, limit, page) { try { - const courseworkList = await Coursework.read(filter, 0); + const courseworkList = await Coursework.read(filter, limit, page); return courseworkList; } catch (error) { throw new databaseError.DataRetrievalError("coursework"); diff --git a/services/department.js b/services/department.js index 1b72e6d..878a329 100644 --- a/services/department.js +++ b/services/department.js @@ -21,8 +21,8 @@ export async function createnewdepartment( throw new databaseError.DataEntryError("Add department"); } -export async function listdepartment(filter) { - const listeddepartment = await department.read(filter); +export async function listdepartment(filter, limit, page) { + const listeddepartment = await department.read(filter, limit, page); if (listeddepartment) { return listeddepartment; } @@ -40,9 +40,12 @@ export async function deletedepartment(departmentId) { } export async function updateDepartmentbyid(id, data) { - const updatedDepartment = await department.update({ - _id: id, - }, data); + const updatedDepartment = await department.update( + { + _id: id, + }, + data, + ); if (updatedDepartment) { return updatedDepartment; } @@ -50,5 +53,8 @@ export async function updateDepartmentbyid(id, data) { } export default { - updateDepartmentbyid, createnewdepartment, listdepartment, deletedepartment, + updateDepartmentbyid, + createnewdepartment, + listdepartment, + deletedepartment, }; diff --git a/services/employee/empBank.js b/services/employee/empBank.js index 67f09b3..a0daef9 100644 --- a/services/employee/empBank.js +++ b/services/employee/empBank.js @@ -8,7 +8,7 @@ export async function createEmployeeBank( bankBranch, bankIfsc, bankMicr, - appointmentApproveSgDte, + appointmentApproveSgDte, ) { const newEmployeeBank = await EmployeeBank.create({ uid, @@ -17,7 +17,7 @@ export async function createEmployeeBank( bankBranch, bankIfsc, bankMicr, - appointmentApproveSgDte, + appointmentApproveSgDte, }); if (newEmployeeBank.uid === uid) { return newEmployeeBank; @@ -33,8 +33,8 @@ export async function updateEmployeeBankById(id, data) { throw new databaseError.DataEntryError("employee bank"); } -export async function employeeBankList(filter) { - const employeeBank = await EmployeeBank.read(filter, 0); +export async function employeeBankList(filter, limit, page) { + const employeeBank = await EmployeeBank.read(filter, limit, page); return employeeBank; } @@ -44,4 +44,4 @@ export async function deleteEmployeeBankById(employeeBankId) { return deleted; } throw new databaseError.DataDeleteError("employee bank"); -} \ No newline at end of file +} diff --git a/services/employee/empCurrentDetail.js b/services/employee/empCurrentDetail.js new file mode 100644 index 0000000..8b09496 --- /dev/null +++ b/services/employee/empCurrentDetail.js @@ -0,0 +1,50 @@ +import databaseError from "#error/database"; +import EmployeeCurrent from "#models/employee/empPersonal"; + +export async function addNewEmployeeCurrent( + uid, + dateOfJoining, + departmentName, + designation, + jobStatus, + jobProfile, + currentCtc, +) { + const newEmployeeCurrent = await EmployeeCurrent.create({ + uid, + dateOfJoining, + departmentName, + designation, + jobStatus, + jobProfile, + currentCtc, + }); + if (newEmployeeCurrent.uid === uid) { + return newEmployeeCurrent; + } + throw new databaseError.DataEntryError("Add EmployeeCurrent"); +} + +export async function getEmployeeCurrent(filter, limit, page) { + const employeeCurrent = await EmployeeCurrent.read(filter, limit, page); + if (employeeCurrent) { + return employeeCurrent; + } + throw new databaseError.DataNotFoundError("EmployeeCurrent"); +} + +export async function deleteEmployeeCurrentById(EmployeeCurrentId) { + const deleted = await EmployeeCurrent.remove({ _id: EmployeeCurrentId }); + if (deleted) { + return deleted; + } + throw new databaseError.DataDeleteError("EmployeeCurrent"); +} + +export async function updateEmployeeCurrentById(id, data) { + const updated = await EmployeeCurrent.update({ _id: id }, data); + if (updated) { + return updated; + } + throw new databaseError.DataEntryError("EmployeeCurrent"); +} diff --git a/services/employee/empEduHistory.js b/services/employee/empEduHistory.js index 5273ca9..736cd6c 100644 --- a/services/employee/empEduHistory.js +++ b/services/employee/empEduHistory.js @@ -2,32 +2,32 @@ import EmployeeEducationHistory from "#models/employee/empEduHistory"; import databaseError from "#error/database"; export async function createEmployeeEducationHistory( - educationType, - educationName, - specialization, - period, - institutionName, - university, - passingDivision, - fromYear, - uptoYear, - registrationNumber, - aggregatePct, - finalYearPct, - numberOfAttempts, - rank, - passingYear, - uid, - ssc, - hsc, - dip, - iti, - deg, - pgd, - phd, - pdoc, + educationType, + educationName, + specialization, + period, + institutionName, + university, + passingDivision, + fromYear, + uptoYear, + registrationNumber, + aggregatePct, + finalYearPct, + numberOfAttempts, + rank, + passingYear, + uid, + ssc, + hsc, + dip, + iti, + deg, + pgd, + phd, + pdoc, ) { - const newEmployeeEducationHistory = await EmployeeEducationHistory.create({ + const newEmployeeEducationHistory = await EmployeeEducationHistory.create({ educationType, educationName, specialization, @@ -52,32 +52,38 @@ export async function createEmployeeEducationHistory( pgd, phd, pdoc, - }); - if(newEmployeeEducationHistory.uid === uid){ - return newEmployeeEducationHistory; - } - throw new databaseError.DataEntryError("Employee Education History"); + }); + if (newEmployeeEducationHistory.uid === uid) { + return newEmployeeEducationHistory; + } + throw new databaseError.DataEntryError("Employee Education History"); } - -export async function employeeEducationHistoryList(filter) { - const empEduHistory = await EmployeeEducationHistory.read(filter,0); - return empEduHistory; +export async function employeeEducationHistoryList(filter, limit, page) { + const empEduHistory = await EmployeeEducationHistory.read( + filter, + limit, + page, + ); + return empEduHistory; } - export async function updateEmployeeEducationHistoryById(id, data) { - const updated = await EmployeeEducationHistory.update({_id: id}, data); - if(updated) { - return updated; - } - throw new databaseError.DataEntryError("Employee Education History"); + const updated = await EmployeeEducationHistory.update({ _id: id }, data); + if (updated) { + return updated; + } + throw new databaseError.DataEntryError("Employee Education History"); } - export async function deleteEmployeeEducationHistoryById(employeeEducationHistoryId) { - const deleted = await EmployeeEducationHistory.remove({_id: employeeEducationHistoryId}); - if (deleted) { - return deleted; - } - throw new databaseError.DataDeleteError("Employee Education History"); - } \ No newline at end of file +export async function deleteEmployeeEducationHistoryById( + employeeEducationHistoryId, +) { + const deleted = await EmployeeEducationHistory.remove({ + _id: employeeEducationHistoryId, + }); + if (deleted) { + return deleted; + } + throw new databaseError.DataDeleteError("Employee Education History"); +} diff --git a/services/employee/empPersonal.js b/services/employee/empPersonal.js index af0f003..6d071ad 100644 --- a/services/employee/empPersonal.js +++ b/services/employee/empPersonal.js @@ -1,7 +1,65 @@ import databaseError from "#error/database"; import EmployeePersonal from "#models/employee/empPersonal"; -export async function addNewEmployeePersonal(uid, title, empFirstName, empLastName, bloodGroup, dob, birthPlace, motherTongue, gender, religion, numOfChildren, originalCastCategory, caste, subCaste, spouseMailAddress, spouseMobileNo, emrgContactNo, emrgContactPersonName, empMobileNo, panNumber, aadharCardNo, creditCardNumber, drivingLicenceNo, drivingLicenceExpiry, passportNumber, licId, identificationMark, addressTypePermanant, permanantPlotNo, permanantStreet, permanantAddress, permanantAddress2, permanantCity, permanantTahshil, permanantDistrict, permanantState, permanantCountry, permanantPincode, addressTypeCorrespondance, correspondancePlotNo, correspondanceStreet, correspondanceAddress, correspondanceAddress2, correspondanceCity, correspondanceTahshil, correspondanceDistrict, correspondanceState, correspondanceCountry, correspondancePincode, maritalStatus, maidenFirstName, maidenMiddleName, maidenLastName, isNameChangedBefore, previousFirstName, previousMiddleName, previousLastName) { +export async function addNewEmployeePersonal( + uid, + title, + empFirstName, + empLastName, + bloodGroup, + dob, + birthPlace, + motherTongue, + gender, + religion, + numOfChildren, + originalCastCategory, + caste, + subCaste, + spouseMailAddress, + spouseMobileNo, + emrgContactNo, + emrgContactPersonName, + empMobileNo, + panNumber, + aadharCardNo, + creditCardNumber, + drivingLicenceNo, + drivingLicenceExpiry, + passportNumber, + licId, + identificationMark, + addressTypePermanant, + permanantPlotNo, + permanantStreet, + permanantAddress, + permanantAddress2, + permanantCity, + permanantTahshil, + permanantDistrict, + permanantState, + permanantCountry, + permanantPincode, + addressTypeCorrespondance, + correspondancePlotNo, + correspondanceStreet, + correspondanceAddress, + correspondanceAddress2, + correspondanceCity, + correspondanceTahshil, + correspondanceDistrict, + correspondanceState, + correspondanceCountry, + correspondancePincode, + maritalStatus, + maidenFirstName, + maidenMiddleName, + maidenLastName, + isNameChangedBefore, + previousFirstName, + previousMiddleName, + previousLastName, +) { const newEmployeePersonal = await EmployeePersonal.create({ uid, title, @@ -67,8 +125,8 @@ export async function addNewEmployeePersonal(uid, title, empFirstName, empLastNa throw new databaseError.DataEntryError("Add EmployeePersonal"); } -export async function getEmployeePersonal(filter) { - const employeePersonal = await EmployeePersonal.read(filter); +export async function getEmployeePersonal(filter, limit, page) { + const employeePersonal = await EmployeePersonal.read(filter, limit, page); if (employeePersonal) { return employeePersonal; } @@ -89,4 +147,4 @@ export async function updateEmployeePersonalById(id, data) { return updated; } throw new databaseError.DataEntryError("EmployeePersonal"); -} \ No newline at end of file +} diff --git a/services/exam.js b/services/exam.js index 90f2856..c917d28 100644 --- a/services/exam.js +++ b/services/exam.js @@ -31,8 +31,8 @@ export async function updateExamById(id, data) { throw new databaseError.DataEntryError("exam"); } -export async function examList(filter) { - const exams = await Exam.read(filter, 0); +export async function examList(filter, limit, page) { + const exams = await Exam.read(filter, limit, page); return exams; } diff --git a/services/faculty.js b/services/faculty.js index 881346a..c8e2b1d 100644 --- a/services/faculty.js +++ b/services/faculty.js @@ -41,8 +41,8 @@ export async function createFaculty( throw new databaseError.DataEntryError("Faculty"); } -export async function facultyList(filter) { - const facList = await Faculty.read(filter); +export async function facultyList(filter, limit, page) { + const facList = await Faculty.read(filter, limit, page); if (facList) { return facList; } @@ -66,5 +66,8 @@ export async function updateFacultyById(id, data) { } export default { - createFaculty, facultyList, deleteFacultyById, updateFacultyById, + createFaculty, + facultyList, + deleteFacultyById, + updateFacultyById, }; diff --git a/services/group.js b/services/group.js index d02ff62..18e5575 100644 --- a/services/group.js +++ b/services/group.js @@ -3,7 +3,8 @@ import databaseError from "#error/database"; export async function createGroup(title, student) { const newGroup = await Group.create({ - title, student, + title, + student, }); if (newGroup.title === title) { return newGroup; @@ -19,8 +20,8 @@ export async function updateGroupById(id, data) { throw new databaseError.DataEntryError("group"); } -export async function groupList(filter) { - const groups = await Group.read(filter, 0); +export async function groupList(filter, limit, page) { + const groups = await Group.read(filter, limit, page); return groups; } diff --git a/services/infrastructure.js b/services/infrastructure.js index 073c4e2..57c60fc 100644 --- a/services/infrastructure.js +++ b/services/infrastructure.js @@ -3,7 +3,11 @@ import databaseError from "#error/database"; export async function createInfrastructure(name, type, wing, floor, capacity) { const newInfrastructure = await Infrastructure.create({ - name, type, wing, floor, capacity, + name, + type, + wing, + floor, + capacity, }); if (newInfrastructure.name === name) { return newInfrastructure; @@ -19,8 +23,8 @@ export async function updateInfrastructureById(id, data) { throw new databaseError.DataEntryError("Infrastructure"); } -export async function infrastructureList(filter) { - const infralist = await Infrastructure.read(filter, 0); +export async function infrastructureList(filter, limit, page) { + const infralist = await Infrastructure.read(filter, limit, page); return infralist; } diff --git a/services/module.js b/services/module.js index b51874b..389987e 100644 --- a/services/module.js +++ b/services/module.js @@ -1,17 +1,29 @@ import Module from "#models/module"; import databaseError from "#error/database"; -export async function getModule(filter) { - const modules = await Module.read(filter); +export async function getModule(filter, limit, page) { + const modules = await Module.read(filter, limit, page); if (modules) { return modules; } throw new databaseError.DataNotFoundError("Module"); } -export async function addNewModule(no, name, outcome, contents, hrsPerModule, cognitiveLevels) { +export async function addNewModule( + no, + name, + outcome, + contents, + hrsPerModule, + cognitiveLevels, +) { const newModule = await Module.create({ - no, name, outcome, contents, hrsPerModule, cognitiveLevels, + no, + name, + outcome, + contents, + hrsPerModule, + cognitiveLevels, }); if (newModule.name === name) { return newModule; @@ -19,8 +31,8 @@ export async function addNewModule(no, name, outcome, contents, hrsPerModule, co throw new databaseError.DataEntryError("Add Module"); } -export async function updateModuleById(id,data) { - const updated = await Module.update({_id: id}, data); +export async function updateModuleById(id, data) { + const updated = await Module.update({ _id: id }, data); if (updated) { return updated; } @@ -33,4 +45,4 @@ export async function deleteModuleById(ModuleId) { return deleted; } throw new databaseError.DataDeleteError("Module"); -} \ No newline at end of file +} diff --git a/services/notification.js b/services/notification.js index 0606abf..a61b5ab 100644 --- a/services/notification.js +++ b/services/notification.js @@ -32,9 +32,9 @@ export async function updateNotificationById(id, data) { } // Service function to retrieve a list of Notification entities based on filters -export async function listNotifications(filter) { +export async function listNotifications(filter, limit, page) { try { - const notificationList = await Notification.read(filter); + const notificationList = await Notification.read(filter, limit, page); return notificationList; } catch (error) { throw new databaseError.DataEntryError("notification"); diff --git a/services/organization.js b/services/organization.js index aa881b2..03eedbd 100644 --- a/services/organization.js +++ b/services/organization.js @@ -1,9 +1,17 @@ import Organization from "#models/organization"; import databaseError from "#error/database"; -export async function addNewOrganization(parent, startDate, name, accreditation) { +export async function addNewOrganization( + parent, + startDate, + name, + accreditation, +) { const newOrganization = await Organization.create({ - parent, startDate, name, accreditation, + parent, + startDate, + name, + accreditation, }); if (newOrganization.name === name) { return newOrganization; @@ -11,8 +19,8 @@ export async function addNewOrganization(parent, startDate, name, accreditation) throw new databaseError.DataEntryError("Add Organization"); } -export async function getOrganizations(filter) { - const organization = await Organization.read(filter); +export async function getOrganizations(filter, limit, page) { + const organization = await Organization.read(filter, limit, page); if (organization) { return organization; } @@ -36,5 +44,8 @@ export async function updateOrganizationById(id, data) { } export default { - deleteOrganizationById, addNewOrganization, updateOrganizationById, getOrganizations, + deleteOrganizationById, + addNewOrganization, + updateOrganizationById, + getOrganizations, }; diff --git a/services/paper.js b/services/paper.js index 64301a1..17c14d7 100644 --- a/services/paper.js +++ b/services/paper.js @@ -29,8 +29,8 @@ export async function updatePaperById(id, data) { throw new databaseError.DataEntryError("paper"); } -export async function listPaper(filter) { - const paper = await Paper.read(filter, 0); +export async function listPaper(filter, limit, page) { + const paper = await Paper.read(filter, limit, page); return paper; } diff --git a/services/practical.js b/services/practical.js index fafb86d..8660574 100644 --- a/services/practical.js +++ b/services/practical.js @@ -4,11 +4,19 @@ import databaseError from "#error/database"; // Service function to create a new Practical entity export async function createPractical({ - no, title, type, hours, cognitiveLevels, + no, + title, + type, + hours, + cognitiveLevels, }) { try { const newPractical = await Practical.create({ - no, title, type, hours, cognitiveLevels, + no, + title, + type, + hours, + cognitiveLevels, }); return newPractical; } catch (error) { @@ -30,9 +38,9 @@ export async function updatePracticalById(id, data) { } // Service function to retrieve a list of Practical entities based on filters -export async function listPractical(filter) { +export async function listPractical(filter, limit, page) { try { - const practicalList = await Practical.read(filter); + const practicalList = await Practical.read(filter, limit, page); return practicalList; } catch (error) { throw new databaseError.DataEntryError("practical"); diff --git a/services/semester.js b/services/semester.js index 6cc7c1c..e762695 100644 --- a/services/semester.js +++ b/services/semester.js @@ -1,9 +1,19 @@ import Semester from "#models/semester"; import databaseError from "#error/database"; -export async function createSemester(number, academicYear, type, startDate, endDate) { +export async function createSemester( + number, + academicYear, + type, + startDate, + endDate, +) { const newSemester = await Semester.create({ - number, academicYear, type, startDate, endDate, + number, + academicYear, + type, + startDate, + endDate, }); if (newSemester.number === number) { return newSemester; @@ -20,8 +30,8 @@ export async function updateSemesterById(id, data) { throw new databaseError.DataEntryError("semester"); } -export async function semesterList(filter) { - const semlist = await Semester.read(filter, 0); +export async function semesterList(filter, limit, page) { + const semlist = await Semester.read(filter, limit, page); return semlist; } diff --git a/services/student.js b/services/student.js index a20d49c..235706b 100644 --- a/services/student.js +++ b/services/student.js @@ -11,7 +11,13 @@ export async function createStudent( coursesOpted, ) { const newStudent = await Student.create({ - ERPID, name, joiningYear, branch, division, rollNo, coursesOpted, + ERPID, + name, + joiningYear, + branch, + division, + rollNo, + coursesOpted, }); if (newStudent.name === name) { return newStudent; @@ -27,8 +33,8 @@ export async function updateStudentById(id, data) { throw new databaseError.DataEntryError("student"); } -export async function studentList(filter) { - const studlist = await Student.read(filter, 0); +export async function studentList(filter, limit, page) { + const studlist = await Student.read(filter, limit, page); return studlist; } diff --git a/services/student/stdBank.js b/services/student/stdBank.js index 9a7e24f..45da515 100644 --- a/services/student/stdBank.js +++ b/services/student/stdBank.js @@ -2,12 +2,12 @@ import StudentBank from "#models/student/stdBank"; import databaseError from "#error/database"; export async function createStudentBank( - uid, - bankName, - bankAccount, - bankBranch, - bankIfsc, - bankMicr, + uid, + bankName, + bankAccount, + bankBranch, + bankIfsc, + bankMicr, ) { const newStudentBank = await StudentBank.create({ uid, @@ -31,8 +31,8 @@ export async function updateStudentBankById(id, data) { throw new databaseError.DataEntryError("student bank"); } -export async function studentBankList(filter) { - const studentBank = await StudentBank.read(filter, 0); +export async function studentBankList(filter, limit, page) { + const studentBank = await StudentBank.read(filter, limit, page); return studentBank; } @@ -42,4 +42,4 @@ export async function deleteStudentBankById(studentBankId) { return deleted; } throw new databaseError.DataDeleteError("student bank"); -} \ No newline at end of file +} diff --git a/services/student/stdCollege.js b/services/student/stdCollege.js index b4ab002..463fe0f 100644 --- a/services/student/stdCollege.js +++ b/services/student/stdCollege.js @@ -47,8 +47,8 @@ export async function updateStudentCollegeById(id, data) { throw new databaseError.DataEntryError("student college"); } -export async function studentCollegeList(filter) { - const studentColleges = await StudentCollege.read(filter, 0); +export async function studentCollegeList(filter, limit, page) { + const studentColleges = await StudentCollege.read(filter, limit, page); return studentColleges; } diff --git a/services/student/stdEduHistory.js b/services/student/stdEduHistory.js index 16259df..a63cee4 100644 --- a/services/student/stdEduHistory.js +++ b/services/student/stdEduHistory.js @@ -2,10 +2,10 @@ import StudentEducation from "#models/student/stdEduHistory"; import databaseError from "#error/database"; export async function createStudentEducation( - uid, - tenth, - cetHscDetails, - graduationDetails, + uid, + tenth, + cetHscDetails, + graduationDetails, ) { const newStudentEducation = await StudentEducation.create({ uid, @@ -74,8 +74,12 @@ export async function updateStudentEducationById(id, data) { throw new databaseError.DataEntryError("student education"); } -export async function studentEducationList(filter) { - const studentEducationDetails = await StudentEducation.read(filter, 0); +export async function studentEducationList(filter, limit, page) { + const studentEducationDetails = await StudentEducation.read( + filter, + limit, + page, + ); return studentEducationDetails; } diff --git a/services/student/stdMedHistory.js b/services/student/stdMedHistory.js index 4e19497..a96778c 100644 --- a/services/student/stdMedHistory.js +++ b/services/student/stdMedHistory.js @@ -35,8 +35,8 @@ export async function updateMedicalHistoryById(id, data) { throw new databaseError.DataEntryError("medicalHistory"); } -export async function medicalHistoryList(filter) { - const medHistoryList = await MedicalHistory.read(filter, 0); +export async function medicalHistoryList(filter, limit, page) { + const medHistoryList = await MedicalHistory.read(filter, limit, page); return medHistoryList; } diff --git a/services/student/stdPersonal.js b/services/student/stdPersonal.js index 20df3ba..61ea052 100644 --- a/services/student/stdPersonal.js +++ b/services/student/stdPersonal.js @@ -1,86 +1,8 @@ -import Student from "#models/student/stdPersonal" ; +import Student from "#models/student/stdPersonal"; import databaseError from "#error/database"; -export async function createStudent (uid, - title, - firstName, - middleName, - motherName, - gender, - dob, - age, - birthPlace, - nationality, - motherTongue, - domicileState, - religion, - castCategory, - maharashtraKarnatakaBorderCandidate, - castDescription, - subCasteDescription, - nonCreamyLayerCertificateAttached, - hobby, - passportNo, - bloodGroup, - physicallyHandicapped, - studentMobNo, - studentMail, - parentMobNo, - parentMail, - perAddrDescr, - perPlotNo, - perStreetName, - perStuAddr1, - perStuAddr2, - city, - percellphone, - perpincode, - perresiphone, - permailaddress, - country, - state, - district, - tahsil, - correspondanceAddrDescr, - correspondancePlotNo, - correspondanceStreetName, - correspondanceStuAddr1, - correspondanceStuAddr2, - correspondanceCity, - correspondanceCellPhone, - correspondancePincode, - correspondanceResiPhone, - correspondanceMailAddress, - correspondanceCountry, - correspondanceState, - correspondanceDistrict, - correspondanceTahsil, - fatherDetails, - fathersOccupation, - parentsFirstName, - parentsMiddleName, - parentsLastName, - guardianMobNo, - guardianMailId, - nameAsPerTc , - casteAsPerTc, - birthStatus, - maritalStatus, - panCardNo, - passportExpiry, - drivingLicNo, - drivingLicValidTo, - aadharCardNo, - electionCardNo, - motherMobNo, - motherEmailId, - parentIncome , - photoUploaded, - signUploaded , - thumbUploaded, - noOfDocumentsUploaded,){ - const newStudent = await Student.create({ - uid, +export async function createStudent( + uid, title, firstName, middleName, @@ -141,7 +63,7 @@ export async function createStudent (uid, parentsLastName, guardianMobNo, guardianMailId, - nameAsPerTc , + nameAsPerTc, casteAsPerTc, birthStatus, maritalStatus, @@ -153,35 +75,115 @@ export async function createStudent (uid, electionCardNo, motherMobNo, motherEmailId, - parentIncome , + parentIncome, photoUploaded, - signUploaded , + signUploaded, thumbUploaded, noOfDocumentsUploaded, - }); - if (newStudent){ - return newStudent; - } - throw new databaseError.DataEntryError("student"); +) { + const newStudent = await Student.create({ + uid, + title, + firstName, + middleName, + motherName, + gender, + dob, + age, + birthPlace, + nationality, + motherTongue, + domicileState, + religion, + castCategory, + maharashtraKarnatakaBorderCandidate, + castDescription, + subCasteDescription, + nonCreamyLayerCertificateAttached, + hobby, + passportNo, + bloodGroup, + physicallyHandicapped, + studentMobNo, + studentMail, + parentMobNo, + parentMail, + perAddrDescr, + perPlotNo, + perStreetName, + perStuAddr1, + perStuAddr2, + city, + percellphone, + perpincode, + perresiphone, + permailaddress, + country, + state, + district, + tahsil, + correspondanceAddrDescr, + correspondancePlotNo, + correspondanceStreetName, + correspondanceStuAddr1, + correspondanceStuAddr2, + correspondanceCity, + correspondanceCellPhone, + correspondancePincode, + correspondanceResiPhone, + correspondanceMailAddress, + correspondanceCountry, + correspondanceState, + correspondanceDistrict, + correspondanceTahsil, + fatherDetails, + fathersOccupation, + parentsFirstName, + parentsMiddleName, + parentsLastName, + guardianMobNo, + guardianMailId, + nameAsPerTc, + casteAsPerTc, + birthStatus, + maritalStatus, + panCardNo, + passportExpiry, + drivingLicNo, + drivingLicValidTo, + aadharCardNo, + electionCardNo, + motherMobNo, + motherEmailId, + parentIncome, + photoUploaded, + signUploaded, + thumbUploaded, + noOfDocumentsUploaded, + }); + if (newStudent) { + return newStudent; + } + throw new databaseError.DataEntryError("student"); } -export async function updateStudentById(id,data){ -const updated= await Student.update({_id:id},data); -if (updated){ +export async function updateStudentById(id, data) { + const updated = await Student.update({ _id: id }, data); + if (updated) { return updated; -} -throw new databaseError.DataEntryError("activity"); + } + throw new databaseError.DataEntryError("activity"); } -export async function studentList(filter){ - const studentlist = await Student.read(filter,0); - return studentlist; +export async function studentList(filter, limit, page) { + const studentlist = await Student.read(filter, limit, page); + return studentlist; } -export async function deleteStudentById(id){ - const deleted = await Student.remove({_id:id}); - if(deleted){ - return deleted; - } - throw new databaseError.DataDeleteError("activity"); -} \ No newline at end of file +export async function deleteStudentById(id) { + const deleted = await Student.remove({ _id: id }); + if (deleted) { + return deleted; + } + throw new databaseError.DataDeleteError("activity"); +} diff --git a/services/timetable.js b/services/timetable.js index 1760845..5405dec 100644 --- a/services/timetable.js +++ b/services/timetable.js @@ -37,8 +37,8 @@ export async function updateTimetableById(id, data) { throw new databaseError.DataEntryError("timetable"); } -export async function timetableList(filter) { - const timetable = await Timetable.read(filter, 0); +export async function timetableList(filter, limit, page) { + const timetable = await Timetable.read(filter, limit, page); return timetable; } diff --git a/services/topic.js b/services/topic.js index b4baa08..289e764 100644 --- a/services/topic.js +++ b/services/topic.js @@ -11,8 +11,8 @@ export async function addNewTopic(title) { throw new databaseError.DataEntryError("Add Topic"); } -export async function getTopics(filter) { - const topics = await Topic.read(filter); +export async function getTopics(filter, limit, page) { + const topics = await Topic.read(filter, limit, page); if (topics) { return topics; } diff --git a/services/tutorial.js b/services/tutorial.js index dfefefc..2cbff8f 100644 --- a/services/tutorial.js +++ b/services/tutorial.js @@ -14,8 +14,8 @@ export async function addNewTutorial(no, title, hours, cognitiveLevel) { throw new databaseError.DataEntryError("Add Tutorial"); } -export async function getTutorials(filter) { - const tutorials = await Tutorial.read(filter); +export async function getTutorials(filter, limit, page) { + const tutorials = await Tutorial.read(filter, limit, page); if (tutorials) { return tutorials; } @@ -39,5 +39,8 @@ export async function updateTutorialById(id, data) { } export default { - deleteTutorialById, addNewTutorial, updateTutorialById, getTutorials, + deleteTutorialById, + addNewTutorial, + updateTutorialById, + getTutorials, }; diff --git a/services/user.js b/services/user.js index 1e6d737..dbe3ce3 100644 --- a/services/user.js +++ b/services/user.js @@ -4,16 +4,19 @@ import { comparePasswords, hashPassword } from "#util"; export async function authenticateUser(uid, password) { const user = await User.read({ uid }, 1); - const passwordMatched = await comparePasswords(password, user[0]?.password); + const passwordMatched = await comparePasswords( + password, + user.data[0]?.password, + ); if (passwordMatched) { - return user[0]; + return user.data[0]; } throw new databaseError.UserDoesNotExistError(); } export async function userExists(uid, email) { const user = await User.read({ uid, emailId: email }, 1); - if (user[0].uid === uid) return true; + if (user.data[0].uid === uid) return true; return false; } @@ -24,15 +27,20 @@ export async function updatePassword(uid, password) { throw new databaseError.UpdateError("User"); } -export async function allUsers() { - const allUser = await User.read({}, 0); +export async function allUsers(limit, page) { + const allUser = await User.read({}, limit, page); return allUser; } export async function createUser(name, password, emailId, uid, userType) { const newUser = await User.create({ - name, password, emailId, uid, userType, + name, + password, + emailId, + uid, + userType, }); + console.log(newUser); if (newUser.uid === uid) { return newUser; } diff --git a/test/routes/practical.test.js b/test/routes/practical.test.js index 8a01bbc..ed6ec92 100644 --- a/test/routes/practical.test.js +++ b/test/routes/practical.test.js @@ -6,14 +6,12 @@ jest.mock("#util"); const { agent } = global; function cleanUp(callback) { - PracticalModel - .remove({}) - .then(() => { - connector.disconnect((DBerr) => { - if (DBerr) console.log("Database disconnect error: ", DBerr); - callback(); - }); + PracticalModel.remove({}).then(() => { + connector.disconnect((DBerr) => { + if (DBerr) console.log("Database disconnect error: ", DBerr); + callback(); }); + }); } afterAll((done) => { @@ -53,16 +51,16 @@ describe("Practical API", () => { }); it("should list practical entities", async () => { - const response = await agent.get("/practical/list") - .send({ title: "new practical" }); + const response = await agent.get("/practical/list"); expect(response.status).toBe(200); - expect(response.body.res).toHaveLength(1); }); it("should update a practical entity", async () => { - const response = await agent.post(`/practical/update/${practicalId}`).send({ - hours: 3, - }); + const response = await agent + .post(`/practical/update/${practicalId}`) + .send({ + hours: 3, + }); expect(response.status).toBe(200); expect(response.body.res).toMatch(/Updated Practical/);