ashok 1 month ago
commit 992bc794f7

@ -415,29 +415,77 @@ exports.createTeamMember = async (req, reply) => {
// };
// Controller
// exports.getTeamMembers = async (request, reply) => {
// try {
// const { departmentId, officeName, city } = request.params;
// // Make regex tolerate spaces
// const department = await Deparments.findOne({
// departmentId,
// 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({
// simplydata: {
// error: true,
// message: "Department not found for given office and city",
// },
// });
// }
// 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.getTeamMembers = async (request, reply) => {
try {
const { departmentId, officeName, city } = request.params;
// Make regex tolerate spaces
const department = await Deparments.findOne({
// Build query dynamically
const query = {
departmentId,
officeName: { $regex: new RegExp(`^\\s*${officeName.trim()}\\s*$`, "i") },
city: { $regex: new RegExp(`^\\s*${city.trim()}\\s*$`, "i") }
}).lean();
};
console.log("department", department);
// Only add city filter if city !== "ALL"
if (city && city.toUpperCase() !== "ALL") {
query.city = { $regex: new RegExp(`^\\s*${city.trim()}\\s*$`, "i") };
}
if (!department) {
const departments = await Deparments.find(query).lean();
if (!departments.length) {
return reply.status(404).send({
simplydata: {
error: true,
message: "Department not found for given office and city",
message: "No departments found for given filters",
},
});
}
const teamMembers = department.team_member?.team_member || [];
// Collect team members from all matching departments
const teamMembers = departments.flatMap(dep => dep.team_member?.team_member || []);
return reply.send({
simplydata: {
@ -459,7 +507,6 @@ exports.getTeamMembers = async (request, reply) => {
};
// exports.getAllDepartments = async (request, reply) => {
// try {
// const { officeName, city } = request.params;

Loading…
Cancel
Save