diff --git a/src/controllers/installationController.js b/src/controllers/installationController.js index 180c2553..b93fd209 100644 --- a/src/controllers/installationController.js +++ b/src/controllers/installationController.js @@ -3348,3 +3348,44 @@ exports.updateTeamMemberSupport = async (req, reply) => { return reply.code(500).send({ error: "Internal server error" }); } }; + + +exports.deleteTeamMemberSupport = async (req, reply)=> { + try { + const { supportId, teamMemberId } = req.params; + + const support = await Support.findOne({ supportId }); + + if (!support) { + return reply.code(404).send({ error: "Support record not found" }); + } + + const originalLength = support.team_member?.team_member.length || 0; + + const updatedTeam = support.team_member?.team_member.filter( + m => m.support_teamMemberId !== teamMemberId + ); + + if (originalLength === updatedTeam.length) { + return reply.code(404).send({ error: "Team member not found" }); + } + + await Support.updateOne( + { supportId }, + { + $set: { + "team_member.team_member": updatedTeam, + updatedAt: new Date() + } + } + ); + + return reply.send({ + status_code: 200, + message: "Team member deleted successfully" + }); + } catch (error) { + console.error("Error deleting team member:", error); + return reply.code(500).send({ error: "Internal server error" }); + } +} \ No newline at end of file diff --git a/src/routes/installationRoute.js b/src/routes/installationRoute.js index 971a7304..41603b54 100644 --- a/src/routes/installationRoute.js +++ b/src/routes/installationRoute.js @@ -621,6 +621,24 @@ module.exports = function (fastify, opts, next) { handler: installationController.updateTeamMemberSupport + }); + fastify.delete("/api/supportDeleteTeamMember/:supportId/:teamMemberId", { + schema: { + description: "Delete a support team member by ID", + tags: ["Support"], + summary: "Delete a support team member by ID", + params: { + type: "object", + required: ["supportId", "teamMemberId"], + properties: { + supportId: { type: "string" }, + teamMemberId: { type: "string" } + } + } + }, + handler: installationController.deleteTeamMemberSupport + + }); next();