From c0fabc90af9790346ddd6f68530f8d4003da1e6d Mon Sep 17 00:00:00 2001 From: Bhaskar Date: Mon, 18 Aug 2025 13:30:31 +0530 Subject: [PATCH] Admin delete team member --- src/controllers/admincontroller.js | 58 +++++++++++++++++++++++++++++- src/routes/adminRoute.js | 31 ++++++++++++++++ 2 files changed, 88 insertions(+), 1 deletion(-) diff --git a/src/controllers/admincontroller.js b/src/controllers/admincontroller.js index cac4f143..8c15b174 100644 --- a/src/controllers/admincontroller.js +++ b/src/controllers/admincontroller.js @@ -1013,4 +1013,60 @@ exports.getOfficeDetails = async (req, reply) => { }, }); } - }; \ No newline at end of file + }; + + + exports.AdmindeleteTeamMember = async (request, reply) => { + try { + const { departmentId, teamMemberId } = request.params; + + // Find the installation + const installation = await Deparments.findOne({ departmentId }); + + if (!installation) { + return reply.status(404).send({ + simplydata: { + error: true, + message: "Installation not found", + }, + }); + } + + // Find index of the team member + const memberIndex = installation.team_member.team_member.findIndex( + (member) => member.teamMemberId === teamMemberId + ); + + if (memberIndex === -1) { + return reply.status(404).send({ + simplydata: { + error: true, + message: "Team member not found", + }, + }); + } + + // Remove the team member from the array + installation.team_member.team_member.splice(memberIndex, 1); + + // Save changes + await installation.markModified("team_member.team_member"); + await installation.save(); + + return reply.send({ + simplydata: { + error: false, + message: "Team member deleted successfully", + }, + }); + + } catch (err) { + console.error("Error deleting team member:", err); + reply.status(500).send({ + simplydata: { + error: true, + message: "Internal server error", + }, + }); + } + }; \ No newline at end of file diff --git a/src/routes/adminRoute.js b/src/routes/adminRoute.js index 33bb3a66..c2f7d812 100644 --- a/src/routes/adminRoute.js +++ b/src/routes/adminRoute.js @@ -339,6 +339,37 @@ fastify.get("/api/getBranchDetails", { handler: adminController.adminEditTeamMember }); + fastify.delete("/api/deleteTeamMember/:departmentId/:teamMemberId", { + schema: { + description: "Delete a team member from an Admin", + tags: ["Admin"], + summary: "Admin Delete Team Member", + params: { + type: "object", + properties: { + departmentId: { type: "string", description: "departmentId" }, + teamMemberId: { type: "string", description: "Team Member ID" } + }, + required: ["departmentId", "teamMemberId"] + }, + response: { + 200: { + type: "object", + properties: { + simplydata: { + type: "object", + properties: { + error: { type: "boolean" }, + message: { type: "string" } + } + } + } + } + } + }, + handler: adminController.AdmindeleteTeamMember + }); + fastify.get("/api/getOfficeDetails/:officeName/:city", { schema: { tags: ["Admin"],