diff --git a/src/controllers/admincontroller.js b/src/controllers/admincontroller.js index 5b3da1d6..cac4f143 100644 --- a/src/controllers/admincontroller.js +++ b/src/controllers/admincontroller.js @@ -958,3 +958,59 @@ exports.getOfficeDetails = async (req, reply) => { } }; + + exports.adminEditTeamMember = async (request, reply) => { + try { + const { departmentId, teamMemberId } = request.params; + const updateData = request.body; + + // Find the installation + const installation = await Deparments.findOne({ departmentId }); + + if (!installation) { + return reply.status(404).send({ + simplydata: { + error: true, + message: "Installation not found", + }, + }); + } + + // Find the team member + let teamMember = installation.team_member.team_member.find( + (member) => member.teamMemberId === teamMemberId + ); + + if (!teamMember) { + return reply.status(404).send({ + simplydata: { + error: true, + message: "Team member not found", + }, + }); + } + + // Update fields + Object.assign(teamMember, updateData); + + // Save changes + await installation.markModified("team_member.team_member"); + await installation.save(); + + return reply.send({ + simplydata: { + error: false, + message: "Team member updated successfully", + }, + }); + + } catch (err) { + console.error("Error updating 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 ce6d59b6..33bb3a66 100644 --- a/src/routes/adminRoute.js +++ b/src/routes/adminRoute.js @@ -311,6 +311,34 @@ fastify.get("/api/getBranchDetails", { handler: adminController.getAllOffices, }); + fastify.put("/api/editTeamMember/:departmentId/:teamMemberId", { + schema: { + description: "Admin Edit Team Member", + tags: ["Admin"], + summary: "Admin Edit Team Member", + params: { + type: "object", + properties: { + departmentId: { type: "string", description: "departmentId" }, + teamMemberId: { type: "string", description: "Team Member ID" } + }, + required: ["departmentId", "teamMemberId"] + }, + body: { + type: "object", + properties: { + firstName: { type: "string" }, + phone: { type: "string" }, + email: { type: "string" }, + alternativePhone: { type: "string" }, + + } + }, + + }, + handler: adminController.adminEditTeamMember + }); + fastify.get("/api/getOfficeDetails/:officeName/:city", { schema: { tags: ["Admin"],