diff --git a/src/controllers/installationController.js b/src/controllers/installationController.js index 17f6495c..799f249b 100644 --- a/src/controllers/installationController.js +++ b/src/controllers/installationController.js @@ -102,43 +102,43 @@ exports.createTeamMember = async (req, reply) => { - exports.getTeamMembers = async (request, reply) => { - try { - const { departmentId } = request.params; // ✅ Get departmentId from request params + // exports.getTeamMembers = async (request, reply) => { + // try { + // const { departmentId,officeName,city } = request.params; // ✅ Get departmentId from request params - // ✅ Find the department using departmentId - const department = await Deparments.findOne({ departmentId }); + // // ✅ Find the department using departmentId + // const department = await Deparments.findOne({ departmentId }); - if (!department) { - return reply.status(404).send({ - simplydata: { - error: true, - message: "Department not found", - }, - }); - } + // if (!department) { + // return reply.status(404).send({ + // simplydata: { + // error: true, + // message: "Department not found", + // }, + // }); + // } - // ✅ Extract team members from department schema - const teamMembers = department.team_member.team_member; + // // ✅ Extract team members from department schema + // const teamMembers = department.team_member.team_member; - return reply.send({ - simplydata: { - error: false, - message: "Team members retrieved successfully", - teamMembers, // ✅ Return the list of team members - }, - }); + // return reply.send({ + // simplydata: { + // error: false, + // message: "Team members retrieved successfully", + // teamMembers, // ✅ Return the list of team members + // }, + // }); - } catch (err) { - console.error("Error fetching team members:", err); - reply.status(500).send({ - simplydata: { - error: true, - message: "Internal server error", - }, - }); - } - }; + // } catch (err) { + // console.error("Error fetching team members:", err); + // reply.status(500).send({ + // simplydata: { + // error: true, + // message: "Internal server error", + // }, + // }); + // } + // }; // exports.getAllDepartments = async (request, reply) => { // try { @@ -414,6 +414,51 @@ exports.createTeamMember = async (req, reply) => { // } // }; +// Controller +exports.getTeamMembers = async (request, reply) => { + try { + const { departmentId, officeName, city,departmentName } = request.params; // ✅ Get from path params + + // ✅ Find the department using all three fields + const department = await Deparments.findOne({ + departmentId, + officeName, + city, + departmentName + }); + + if (!department) { + return reply.status(404).send({ + simplydata: { + error: true, + message: "Department not found for given office and city", + }, + }); + } + + // ✅ Extract team members + const teamMembers = department.team_member?.team_member || []; + + return reply.send({ + simplydata: { + error: false, + message: "Team members retrieved successfully", + teamMembers, + }, + }); + + } catch (err) { + console.error("Error fetching team members:", err); + reply.status(500).send({ + simplydata: { + error: true, + message: "Internal server error", + }, + }); + } +}; + + exports.getAllDepartments = async (request, reply) => { try { const { officeName, city } = request.params; diff --git a/src/routes/installationRoute.js b/src/routes/installationRoute.js index 19c6c4c0..47014998 100644 --- a/src/routes/installationRoute.js +++ b/src/routes/installationRoute.js @@ -51,7 +51,7 @@ fastify.get("/api/getAllDepartments/:officeName/:city", { }); - fastify.get("/api/getTeamMembers/:departmentId", { + fastify.get("/api/getTeamMembers/:officeName/:city/:departmentName/:departmentId", { schema: { description: "Get all team members under a specific department", tags: ["Installation"], @@ -59,6 +59,18 @@ fastify.get("/api/getAllDepartments/:officeName/:city", { params: { type: "object", properties: { + officeName: { + type: "string", + description: "fetch team members from" + }, + city: { + type: "string", + description: "fetch team members from" + }, + departmentName:{ + type: "string", + description: "Department Name to fetch team members from" + }, departmentId: { type: "string", description: "Department ID to fetch team members from"