From be6d20dae8de647a875976c5923d1e259da6d8c4 Mon Sep 17 00:00:00 2001 From: Bhaskar Date: Tue, 19 Aug 2025 13:01:44 +0530 Subject: [PATCH] Get Team Members by Department ID --- src/controllers/installationController.js | 14 ++-- src/routes/installationRoute.js | 85 +++++++++++++++-------- 2 files changed, 63 insertions(+), 36 deletions(-) diff --git a/src/controllers/installationController.js b/src/controllers/installationController.js index ab44bf0e..528a4a83 100644 --- a/src/controllers/installationController.js +++ b/src/controllers/installationController.js @@ -418,16 +418,16 @@ exports.createTeamMember = async (req, reply) => { // Controller exports.getTeamMembers = async (request, reply) => { try { - const { departmentId, officeName, city,departmentName } = request.params; // ✅ Get from path params + const { departmentId, officeName, city } = request.params; - // ✅ Find the department using all three fields + // Make regex tolerate spaces const department = await Deparments.findOne({ departmentId, - officeName, - city, - departmentName - }); + officeName: { $regex: new RegExp(`^\\s*${officeName.trim()}\\s*$`, "i") }, + city: { $regex: new RegExp(`^\\s*${city.trim()}\\s*$`, "i") } + }).lean(); + console.log("department", department); if (!department) { return reply.status(404).send({ @@ -438,7 +438,6 @@ exports.getTeamMembers = async (request, reply) => { }); } - // ✅ Extract team members const teamMembers = department.team_member?.team_member || []; return reply.send({ @@ -461,6 +460,7 @@ exports.getTeamMembers = async (request, reply) => { }; + exports.getAllDepartments = async (request, reply) => { try { const { officeName, city } = request.params; diff --git a/src/routes/installationRoute.js b/src/routes/installationRoute.js index a1160b2e..bcefc113 100644 --- a/src/routes/installationRoute.js +++ b/src/routes/installationRoute.js @@ -53,37 +53,64 @@ fastify.get("/api/getAllDepartments/:officeName/:city", { }); - fastify.get("/api/getTeamMembers/:officeName/:city/:departmentName/:departmentId", { - schema: { - description: "Get all team members under a specific department", - tags: ["Installation"], - summary: "Get Team Members by Department ID", - 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" - } - }, + // fastify.get("/api/getTeamMembers/:officeName/:city/:departmentName/:departmentId", { + // schema: { + // description: "Get all team members under a specific department", + // tags: ["Installation"], + // summary: "Get Team Members by Department ID", + // 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" + // } + // }, - required: ["departmentId"] - }, + // required: ["departmentId"] + // }, + // }, + // handler: installationController.getTeamMembers + // }); + + fastify.get("/api/getTeamMembers/:officeName/:city/:departmentId", { + schema: { + description: "Get all team members under a specific department", + tags: ["Installation"], + summary: "Get Team Members by Department ID", + params: { + type: "object", + properties: { + officeName: { + type: "string", + description: "fetch team members from" }, - handler: installationController.getTeamMembers - }); + city: { + type: "string", + description: "fetch team members from" + }, + departmentId: { + type: "string", + description: "Department ID to fetch team members from" + } + }, + required: ["departmentId", "officeName", "city"] + }, + }, + handler: installationController.getTeamMembers +}); fastify.get("/api/getQuations/:installationId", { schema: {