From 70b25df6c0dd641eb9d37bbbc902afcb55e95dec Mon Sep 17 00:00:00 2001 From: Bhaskar Date: Wed, 5 Feb 2025 12:11:00 +0530 Subject: [PATCH] officename added in list --- src/controllers/departmentController.js | 60 ++++++++++++++----------- src/routes/departmentRoute.js | 5 ++- 2 files changed, 36 insertions(+), 29 deletions(-) diff --git a/src/controllers/departmentController.js b/src/controllers/departmentController.js index 55d75b10..c9159149 100644 --- a/src/controllers/departmentController.js +++ b/src/controllers/departmentController.js @@ -953,47 +953,53 @@ exports.getZonebasedLocations = async (req, reply) => { // } // }; - const getDepartmentsByName = async (departmentName, city) => { - try { - const trimmedDepartment = departmentName.trim(); - const trimmedCity = city.trim(); - - const query = { - departmentName: { $regex: trimmedDepartment, $options: "i" }, - city: { $regex: trimmedCity, $options: "i" } - }; - - console.log("MongoDB Query:", JSON.stringify(query, null, 2)); - - const result = await Deparments.find(query).lean(); - - console.log("Query Result:", result); - return result; - } catch (err) { - console.error("Error fetching department data:", err); - throw new Error("Error fetching department data."); - } - }; - +// Updated helper function that accepts all three parameters +const getDepartmentsByName = async (officeName, city, departmentName) => { + try { + // Trim all parameters + const trimmedOfficeName = officeName.trim(); + const trimmedCity = city.trim(); + const trimmedDepartment = departmentName.trim(); + + const query = { + officeName: { $regex: trimmedOfficeName, $options: "i" }, + departmentName: { $regex: trimmedDepartment, $options: "i" }, + city: { $regex: trimmedCity, $options: "i" } + }; + + console.log("MongoDB Query:", JSON.stringify(query, null, 2)); + + const result = await Deparments.find(query).lean(); + + console.log("Query Result:", result); + return result; + } catch (err) { + console.error("Error fetching department data:", err); + throw new Error("Error fetching department data."); + } +}; + // API Route exports.getDepartments = async (req, reply) => { try { console.log("Request Params:", req.params); // Debugging log - let { departmentName, city } = req.params; + let { departmentName, city, officeName } = req.params; - if (!departmentName || !city) { - return reply.status(400).send({ message: "Department Name and City are required." }); + if (!departmentName || !city || !officeName) { + return reply.status(400).send({ message: "Department Name, City, and Office Name are required." }); } departmentName = departmentName.trim(); city = city.trim(); + officeName = officeName.trim(); - const departments = await getDepartmentsByName(departmentName, city); + // Note the order: officeName, city, departmentName + const departments = await getDepartmentsByName(officeName, city, departmentName); if (departments.length === 0) { - return reply.status(404).send({ message: "No departments found for the specified name and city." }); + return reply.status(404).send({ message: "No departments found for the specified parameters." }); } reply.send({ status_code: 200, data: departments }); diff --git a/src/routes/departmentRoute.js b/src/routes/departmentRoute.js index 7a8a0c1a..e5e7f4b2 100644 --- a/src/routes/departmentRoute.js +++ b/src/routes/departmentRoute.js @@ -445,7 +445,7 @@ module.exports = function (fastify, opts, next) { fastify.route({ method: "GET", - url: "/api/departmentNamebaselist/:departmentName/:city", + url: "/api/departmentNamebaselist/:officeName/:city/:departmentName", schema: { tags: ["Department"], description: "Department name based list", @@ -453,8 +453,9 @@ module.exports = function (fastify, opts, next) { params: { type: "object", properties: { - departmentName: { type: "string" }, + officeName: { type: "string" }, city: { type: "string" }, + departmentName: { type: "string" }, }, }, },