diff --git a/models/employee/emp_bank.js b/models/employee/emp_bank.js index 8e1ab1e..3530c72 100644 --- a/models/employee/emp_bank.js +++ b/models/employee/emp_bank.js @@ -38,4 +38,58 @@ const employeeBankSchema = { }; // eslint-disable-next-line no-unused-vars -const empBank = connector.model("Employee bank", employeeBankSchema); +const EmployeeBank = connector.model("Employee bank", employeeBankSchema); + +///crud operation/// + +// employee personal details to the database +async function create(employeeBankData) { + const { + uid, + bank_name, + bank_acc, + bank_branch, + bank_ifsc, + bank_micr, + appointment_approve_sg_dte, + } = employeeBankData; + + const empBank = new EmployeeBank({ + uid, + bank_name, + bank_acc, + bank_branch, + bank_ifsc, + bank_micr, + appointment_approve_sg_dte, + }); + + const empBankDoc = await empBank.save(); + return empBankDoc; +} + +async function read(filter, limit = 1) { + const empBankDoc = employeeBankSchema.find(filter).limit(limit); + return empBankDoc; +} + +async function update(filter, updateObject, options = { multi: true }) { + const updateResult = await employeeBankSchema.updateMany( + filter, + { $set: updateObject }, + options, + ); + return updateResult.acknowledged; +} + +async function remove(empBankId) { + const deleteResult = await employeeBankSchema.deleteMany(empBankId); + return deleteResult.acknowledged; +} + +export default { + create, + read, + update, + remove, +}; \ No newline at end of file diff --git a/services/employee/emp_bank.js b/services/employee/emp_bank.js new file mode 100644 index 0000000..82970f9 --- /dev/null +++ b/services/employee/emp_bank.js @@ -0,0 +1,47 @@ +import EmployeeBank from "#models/employee/empBank"; +import databaseError from "#error/database"; + +export async function createEmployeeBank( + uid, + bank_name, + bank_acc, + bank_branch, + bank_ifsc, + bank_micr, + appointment_approve_sg_dte, +) { + const newEmployeeBank = await EmployeeBank.create({ + uid, + bank_name, + bank_acc, + bank_branch, + bank_ifsc, + bank_micr, + appointment_approve_sg_dte, + }); + if (newEmployeeBank.uid === uid) { + return newEmployeeBank; + } + throw new databaseError.DataEntryError("employee bank"); +} + +export async function updateEmployeeBankById(id, data) { + const updated = await EmployeeBank.update({ _id: id }, data); + if (updated) { + return updated; + } + throw new databaseError.DataEntryError("employee bank"); +} + +export async function employeeBankList(filter) { + const employeeBank = await EmployeeBank.read(filter, 0); + return employeeBank; +} + +export async function deleteEmployeeBankById(employeeBankId) { + const deleted = await EmployeeBank.remove({ _id: employeeBankId }); + if (deleted) { + return deleted; + } + throw new databaseError.DataDeleteError("employee bank"); +} \ No newline at end of file