diff --git a/src/controllers/departmentController.js b/src/controllers/departmentController.js index 636c6727..42b699e2 100644 --- a/src/controllers/departmentController.js +++ b/src/controllers/departmentController.js @@ -1620,26 +1620,32 @@ exports.getOffices = async (req, reply) => { const filter = {}; - if (officeName && officeName !== 'ALL') { + // Apply officeName filter only if not ALL + if (officeName && officeName.toUpperCase() !== 'ALL') { const officeNames = officeName.split(',').map(name => - new RegExp(name.trim().replace(/\s+/g, '\\s*'), 'i') // fuzzy match + new RegExp(name.trim().replace(/\s+/g, '\\s*'), 'i') // fuzzy match ); filter.officeName = { $in: officeNames }; } - if (city && city !== 'ALL') { + // Apply city filter only if not ALL + if (city && city.toUpperCase() !== 'ALL') { const cities = city.split(',').map(name => new RegExp(name.trim().replace(/\s+/g, '\\s*'), 'i') ); filter.city = { $in: cities }; } - console.log("officeName",officeName) - console.log("city",city) + console.log("Filter being applied:", filter); + + // Fetch offices from DB const offices = await Deparments.find(filter).lean(); - // Extract only department names and remove duplicates - const departmentNames = [...new Set(offices.map(o => o.departmentName))]; + // Extract unique department names + let departmentNames = [...new Set(offices.map(o => o.departmentName))]; + + // Always include "ALL" at the start of the list + departmentNames = ['ALL', ...departmentNames]; reply.send({ status_code: 200, @@ -1657,6 +1663,7 @@ exports.getOffices = async (req, reply) => { } }; + // exports.getOffices = async (req, reply) => { // try { // const { officeName, city } = req.params;