diff --git a/src/controllers/departmentController.js b/src/controllers/departmentController.js index d36e60bd..f9d27eec 100644 --- a/src/controllers/departmentController.js +++ b/src/controllers/departmentController.js @@ -10,29 +10,51 @@ const fastify = require("fastify")({ }); const { Counter} = require('../models/User') -const {Department, Desgination} = require('../models/Department') -const generateDepartmentId = async (prefix) => { - const result = await Counter.findOneAndUpdate( - { _id: 'department_id' }, +const {Department, Desgination, City, Deparments} = require('../models/Department') +// const generateDepartmentId = async (prefix) => { +// const result = await Counter.findOneAndUpdate( +// { _id: 'department_id' }, +// { $inc: { seq: 1 } }, +// { upsert: true, new: true } +// ); +// return `AW${prefix}${result.seq}`; +// }; + +const generateCityId = async () => { + var result = await Counter.findOneAndUpdate( + { _id: 'customer_id' }, { $inc: { seq: 1 } }, { upsert: true, new: true } ); - return `AW${prefix}${result.seq}`; + + return result.seq; }; - const generateDesginationId = async (prefix) => { +// const generateDesginationId = async (prefix) => { +// const result = await Counter.findOneAndUpdate( +// { _id: 'desgination_id' }, +// { $inc: { seq: 1 } }, +// { upsert: true, new: true } +// ); +// return `AW${prefix}${result.seq}`; +// }; + +const generateDepartmentId = async (city, departmentName) => { + const cityPrefix = city.substring(0, 2).toUpperCase(); // Extract first two letters of city + const departmentPrefix = departmentName.substring(0, 2).toUpperCase(); // Extract first two letters of departmentName + const result = await Counter.findOneAndUpdate( { _id: 'desgination_id' }, { $inc: { seq: 1 } }, { upsert: true, new: true } ); - return `AW${prefix}${result.seq}`; + + return `AW${cityPrefix}${departmentPrefix}${result.seq}`; // Generate ID }; - exports.addDepartment = async (request, reply) => { + exports.addCity = async (request, reply) => { try { const { - departmentName, phone, officeName, location, @@ -48,18 +70,18 @@ const generateDepartmentId = async (prefix) => { } = request.body; // Generate departmentId based on departmentName - const prefix = departmentName.substring(0, 2).toUpperCase(); // Extract first two letters and convert to uppercase - const departmentId = await generateDepartmentId(prefix); + // const prefix = departmentName.substring(0, 2).toUpperCase(); // Extract first two letters and convert to uppercase + const cityId = await generateCityId(); // Check for existing department - const existingStore = await Department.findOne({ departmentId }); + const existingStore = await City.findOne({ cityId }); if (existingStore) { - return reply.status(400).send({ message: 'Department is already registered' }); + return reply.status(400).send({ message: 'City is already registered' }); } // Create new department - const department = new Department({ - departmentId, + const citys = new City({ + cityId, phone, officeName, location, @@ -70,49 +92,49 @@ const generateDepartmentId = async (prefix) => { zone, country, pincode, - departmentName, + // departmentName, createdBy, updatedBy, }); - await department.save(); + await citys.save(); - reply.send({ department, message: 'Account Created Successfully' }); + reply.send({ citys, message: 'Account Created Successfully' }); } catch (err) { reply.status(500).send({ message: err.message }); } }; - exports.getSinledepartmentData = async (req, reply) => { +// exports.getSinledepartmentData = async (req, reply) => { +// try { +// const { departmentId } = req.params; + +// const department = await Department.findOne({ departmentId: departmentId }); + +// if (!department) { +// return reply.code(404).send({ +// success: false, +// message: 'Department not found.' +// }); +// } + +// reply.code(200).send({ +// success: true, +// message: 'Department data retrieved successfully.', +// data: department +// }); +// } catch (error) { +// console.error('Error fetching department data:', error); +// reply.code(500).send({ +// success: false, +// message: 'Failed to retrieve department data.', +// error: error.message, +// }); +// } +// }; + + exports.getallcities = async (req, reply) => { try { - const { departmentId } = req.params; - - const department = await Department.findOne({ departmentId: departmentId }); - - if (!department) { - return reply.code(404).send({ - success: false, - message: 'Department not found.' - }); - } - - reply.code(200).send({ - success: true, - message: 'Department data retrieved successfully.', - data: department - }); - } catch (error) { - console.error('Error fetching department data:', error); - reply.code(500).send({ - success: false, - message: 'Failed to retrieve department data.', - error: error.message, - }); - } - }; - - exports.getalldepartmants = async (req, reply) => { - try { - await Department.find() + await City.find() .exec() .then((docs) => { reply.send({ status_code: 200, data: docs, count: docs.length }); @@ -127,38 +149,38 @@ const generateDepartmentId = async (prefix) => { }; -exports.getAllDepartmentsParticularFields = async (req, reply) => { +// exports.getAllDepartmentsParticularFields = async (req, reply) => { +// try { +// const departments = await Department.find().exec(); + +// // Grouping the data +// const result = { +// cities: [...new Set(departments.map((doc) => doc.city))], +// zones: [...new Set(departments.map((doc) => doc.zone))], +// pincodes: [...new Set(departments.map((doc) => doc.pincode))], +// departments: [...new Set(departments.map((doc) => doc.departmentName))], +// states: [...new Set(departments.map((doc) => doc.state))], +// countries: [...new Set(departments.map((doc) => doc.country))], +// }; + +// // Sending the response +// reply.send({ +// status_code: 200, +// data: result, +// count: departments.length, +// }); +// } catch (err) { +// console.error(err); +// reply.send({ error: err.message }); +// } +// }; + + + exports.deletecityInfo = async (req, reply) => { try { - const departments = await Department.find().exec(); - - // Grouping the data - const result = { - cities: [...new Set(departments.map((doc) => doc.city))], - zones: [...new Set(departments.map((doc) => doc.zone))], - pincodes: [...new Set(departments.map((doc) => doc.pincode))], - departments: [...new Set(departments.map((doc) => doc.departmentName))], - states: [...new Set(departments.map((doc) => doc.state))], - countries: [...new Set(departments.map((doc) => doc.country))], - }; - - // Sending the response - reply.send({ - status_code: 200, - data: result, - count: departments.length, - }); - } catch (err) { - console.error(err); - reply.send({ error: err.message }); - } - }; - - - exports.deletedepartmentInfo = async (req, reply) => { - try { - const departmentId = req.params.departmentId; + const cityId = req.params.cityId; - const department = await Department.findOneAndDelete({ departmentId:departmentId }); + const department = await City.findOneAndDelete({ cityId:cityId }); reply.send({ status_code: 200, message: 'Delete Sucessfully', department}); } catch (err) { @@ -167,9 +189,9 @@ exports.getAllDepartmentsParticularFields = async (req, reply) => { }; - exports.editdepartment = async (request, reply) => { + exports.editcity = async (request, reply) => { try { - const { departmentId } = request.params; + const { cityId } = request.params; const { // phone, @@ -180,14 +202,14 @@ exports.getAllDepartmentsParticularFields = async (req, reply) => { address1, address2, pincode, - departmentName + // departmentName } = request.body; - const existing = await Department.findOne({ departmentId }); + const existing = await City.findOne({ cityId }); if (!existing) { - return reply.status(404).send({ message: 'Department not found' }); + return reply.status(404).send({ message: 'City not found' }); } // const phoneExists = await Department.findOne({ phone, departmentId: { $ne: departmentId } }); @@ -201,7 +223,7 @@ exports.getAllDepartmentsParticularFields = async (req, reply) => { existing.state = state || existing.state; existing.country = country || existing.country; existing.zone = zone || existing.zone; - existing.departmentName = departmentName || existing.departmentName; + // existing.departmentName = departmentName || existing.departmentName; existing.pincode = pincode || existing.pincode; existing.address1 = address1 || existing.address1; @@ -211,17 +233,88 @@ exports.getAllDepartmentsParticularFields = async (req, reply) => { await existing.save(); - reply.send({ message: 'Department user updated successfully' }); + reply.send({ message: 'City user updated successfully' }); } catch (err) { reply.status(500).send({ message: err.message }); } }; - exports.addDesgination = async (request, reply) => { +// exports.addDesgination = async (request, reply) => { +// try { +// const { +// phone, +// city, +// firstName, +// lastName, +// departmentName, +// reportingManager, +// email, +// state, +// password, +// country, +// zone, +// address1, +// address2, +// pincode, +// desginationName, +// location, +// createdBy, +// updatedBy, +// } = request.body; + +// // Generate desginationId based on desginationName +// const prefix = departmentName.substring(0, 2).toUpperCase(); +// const desginationId = await generateDesginationId(prefix); + +// // Check if the phone is already registered +// const existingStore = await Desgination.findOne({ phone }); +// if (existingStore) { +// return reply.status(400).send({ message: 'Phone is already registered' }); +// } + +// // Hash the password +// const hashedPassword = await bcrypt.hash(password, 10); + +// // Create a new designation +// const desgination = new Desgination({ +// desginationId, +// city, +// firstName, +// lastName, +// email, +// reportingManager, +// departmentName, +// phone, +// address1, +// address2, +// services: { password: { bcrypt: hashedPassword } }, +// state, +// zone, +// country, +// pincode, +// desginationName, +// location, +// createdBy, +// updatedBy, +// }); + +// await desgination.save(); + +// reply.send({ desgination, message: 'Account Created Successfully' }); +// } catch (err) { +// reply.status(500).send({ message: err.message }); +// } +// }; + + +exports.addDepartment = async (request, reply) => { try { const { phone, + alternativeContactNumber, + gender, + personalEmail, city, firstName, lastName, @@ -241,12 +334,11 @@ exports.getAllDepartmentsParticularFields = async (req, reply) => { updatedBy, } = request.body; - // Generate desginationId based on desginationName - const prefix = departmentName.substring(0, 2).toUpperCase(); - const desginationId = await generateDesginationId(prefix); + // Generate desginationId + const departmentId = await generateDepartmentId(city, departmentName); // Check if the phone is already registered - const existingStore = await Desgination.findOne({ phone }); + const existingStore = await Deparments.findOne({ phone }); if (existingStore) { return reply.status(400).send({ message: 'Phone is already registered' }); } @@ -255,12 +347,15 @@ exports.getAllDepartmentsParticularFields = async (req, reply) => { const hashedPassword = await bcrypt.hash(password, 10); // Create a new designation - const desgination = new Desgination({ - desginationId, + const department = new Deparments({ + departmentId, + alternativeContactNumber, + gender, city, firstName, lastName, email, + personalEmail, reportingManager, departmentName, phone, @@ -277,19 +372,19 @@ exports.getAllDepartmentsParticularFields = async (req, reply) => { updatedBy, }); - await desgination.save(); + await department.save(); - reply.send({ desgination, message: 'Account Created Successfully' }); + reply.send({ department, message: 'Account Created Successfully' }); } catch (err) { reply.status(500).send({ message: err.message }); } }; - - exports.getSinledesginationData = async (req, reply) => { + + exports.getSinledepartmentData = async (req, reply) => { try { - const { desginationId } = req.params; + const { departmentId } = req.params; - const department = await Desgination.findOne({ desginationId: desginationId }); + const department = await Deparments.findOne({ departmentId: departmentId }); if (!department) { return reply.code(404).send({ @@ -313,9 +408,9 @@ exports.getAllDepartmentsParticularFields = async (req, reply) => { } }; - exports.getalldesgination = async (req, reply) => { + exports.getalldepartments = async (req, reply) => { try { - await Desgination.find() + await Deparments.find() .exec() .then((docs) => { reply.send({ status_code: 200, data: docs, count: docs.length }); @@ -329,11 +424,11 @@ exports.getAllDepartmentsParticularFields = async (req, reply) => { } }; - exports.deletedesginationInfo = async (req, reply) => { + exports.deletedepartmentInfo = async (req, reply) => { try { - const desginationId = req.params.desginationId; + const departmentId = req.params.departmentId; - const department = await Desgination.findOneAndDelete({ desginationId:desginationId }); + const department = await Deparments.findOneAndDelete({ departmentId:departmentId }); reply.send({ status_code: 200, message: 'Delete Sucessfully', department}); } catch (err) { @@ -342,12 +437,15 @@ exports.getAllDepartmentsParticularFields = async (req, reply) => { }; - exports.editdesgination = async (request, reply) => { + exports.editdepartment = async (request, reply) => { try { - const { desginationId } = request.params; + const { departmentId } = request.params; const { phone, + alternativeContactNumber, + gender, + personalEmail, city, firstName, lastName, @@ -365,18 +463,21 @@ exports.getAllDepartmentsParticularFields = async (req, reply) => { } = request.body; - const existing = await Desgination.findOne({ desginationId }); + const existing = await Deparments.findOne({ departmentId }); if (!existing) { - return reply.status(404).send({ message: 'Designation not found' }); + return reply.status(404).send({ message: 'Department not found' }); } - const phoneExists = await Desgination.findOne({ phone, desginationId: { $ne: desginationId } }); + const phoneExists = await Deparments.findOne({ phone, departmentId: { $ne: departmentId } }); if (phoneExists) { return reply.status(400).send({ message: 'Phone is already registered to another user' }); } existing.phone = phone || existing.phone; + existing.alternativeContactNumber = alternativeContactNumber || existing.alternativeContactNumber; + existing.personalEmail = personalEmail || existing.personalEmail; + existing.gender = gender || existing.gender; existing.city = city || existing.city; existing.state = state || existing.state; existing.country = country || existing.country; @@ -396,36 +497,86 @@ exports.getAllDepartmentsParticularFields = async (req, reply) => { await existing.save(); - reply.send({ message: 'Designation user updated successfully' }); + reply.send({ message: 'Department user updated successfully' }); } catch (err) { reply.status(500).send({ message: err.message }); } }; - exports.getAllDesignationsParticularFields = async (req, reply) => { - try { - const departments = await Desgination.find().exec(); - - // Grouping the data - const result = { - cities: [...new Set(departments.map((doc) => doc.city))], - zones: [...new Set(departments.map((doc) => doc.zone))], - pincodes: [...new Set(departments.map((doc) => doc.pincode))], - departments: [...new Set(departments.map((doc) => doc.departmentName))], - states: [...new Set(departments.map((doc) => doc.state))], - countries: [...new Set(departments.map((doc) => doc.country))], - designations: [...new Set(departments.map((doc) => doc.desginationName))], - reportingMangers: [...new Set(departments.map((doc) => doc.reportingManager))], +// exports.getAllDesignationsParticularFields = async (req, reply) => { +// try { +// const departments = await Desgination.find().exec(); + +// // Grouping the data +// const result = { +// cities: [...new Set(departments.map((doc) => doc.city))], +// zones: [...new Set(departments.map((doc) => doc.zone))], +// pincodes: [...new Set(departments.map((doc) => doc.pincode))], +// departments: [...new Set(departments.map((doc) => doc.departmentName))], +// states: [...new Set(departments.map((doc) => doc.state))], +// countries: [...new Set(departments.map((doc) => doc.country))], +// designations: [...new Set(departments.map((doc) => doc.desginationName))], +// reportingMangers: [...new Set(departments.map((doc) => doc.reportingManager))], - }; - - // Sending the response - reply.send({ - status_code: 200, - data: result, - count: departments.length, - }); +// }; + +// // Sending the response +// reply.send({ +// status_code: 200, +// data: result, +// count: departments.length, +// }); +// } catch (err) { +// console.error(err); +// reply.send({ error: err.message }); +// } +// }; + + + const getLocationsByCityAndZone = async (city, zone) => { + try { + const result = await City.aggregate([ + { + $match: { + city: city, // Match documents with the same city + zone: zone, // Match documents with the same zone + }, + }, + { + $group: { + _id: { city: "$city", zone: "$zone" }, // Group by city and zone + locations: { $push: "$location" }, // Collect all location arrays + }, + }, + { + $project: { + _id: 0, // Exclude the _id field + city: "$_id.city", + zone: "$_id.zone", + locations: { + $reduce: { + input: "$locations", + initialValue: [], + in: { $concatArrays: ["$$value", "$$this"] }, // Flatten the location arrays + }, + }, + }, + }, + ]); + + return result; } catch (err) { console.error(err); - reply.send({ error: err.message }); + throw new Error("Error fetching locations."); } + }; + + + exports.getZonebasedLocations = async (req, reply) => { + try { + const { city, zone } = req.query; + const locations = await getLocationsByCityAndZone(city, zone); + reply.send({ status_code: 200, data: locations }); + } catch (err) { + reply.status(500).send({ message: err.message }); + } }; \ No newline at end of file diff --git a/src/models/Department.js b/src/models/Department.js index 8adfabb2..9ccbce64 100644 --- a/src/models/Department.js +++ b/src/models/Department.js @@ -4,10 +4,10 @@ const ObjectId = Schema.Types.ObjectId; -const departmentSchema = new mongoose.Schema( +const citySchema = new mongoose.Schema( { - departmentId:{type:String}, - departmentName: { type: String }, + cityId:{type:String}, + //departmentName: { type: String }, phone: { type: String, unique: true, trim: true }, office_address1: String, officeName: { type: String }, @@ -38,16 +38,19 @@ const departmentSchema = new mongoose.Schema( ); - const desginationSchema = new mongoose.Schema( + const departmentsSchema = new mongoose.Schema( { - desginationId:{type:String}, + departmentId:{type:String}, desginationName: { type: String }, phone: { type: String, unique: true, trim: true }, + alternativeContactNumber : { type: String }, reportingManager : { type: String }, location: [{ type : String}], firstName : { type: String }, + gender: { type: String }, lastName: { type: String }, email: { type: String }, + personalEmail : {type: String}, departmentName: { type: String }, address1: String, address2: String, @@ -76,8 +79,8 @@ const departmentSchema = new mongoose.Schema( ); - const Department = mongoose.model('Department', departmentSchema); - const Desgination = mongoose.model('Desgination', desginationSchema); + const City = mongoose.model('City', citySchema); + const Deparments = mongoose.model('Deparments', departmentsSchema); - module.exports = { Department,Desgination}; + module.exports = { City,Deparments}; diff --git a/src/routes/departmentRoute.js b/src/routes/departmentRoute.js index 4864c73f..ece82516 100644 --- a/src/routes/departmentRoute.js +++ b/src/routes/departmentRoute.js @@ -4,11 +4,11 @@ module.exports = function (fastify, opts, next) { fastify.route({ method: "POST", - url: "/api/departmentSignup", + url: "/api/citySignup", schema: { tags: ["Department"], - description: "This is for creating a new department account", - summary: "This is for creating a new department account", + description: "This is for creating a new City account", + summary: "This is for creating a new City account", body: { type: "object", properties: { @@ -34,39 +34,39 @@ module.exports = function (fastify, opts, next) { }, ], }, - handler: departmentController.addDepartment, + handler: departmentController.addCity, }); - fastify.get("/api/getSingledepartmentData/:departmentId", { - schema: { - tags: ["Department"], - description: "This is for Get Single departmentId Data", - summary: "This is to Get Single departmentId Data", - params: { - type: "object", - properties: { - departmentId: { - type: "string", - description: "departmentId", - }, - }, - }, + // fastify.get("/api/getSingledepartmentData/:departmentId", { + // schema: { + // tags: ["Department"], + // description: "This is for Get Single departmentId Data", + // summary: "This is to Get Single departmentId Data", + // params: { + // type: "object", + // properties: { + // departmentId: { + // type: "string", + // description: "departmentId", + // }, + // }, + // }, - security: [ - { - basicAuth: [], - }, - ], - }, - handler: departmentController.getSinledepartmentData, - }); + // security: [ + // { + // basicAuth: [], + // }, + // ], + // }, + // handler: departmentController.getSinledepartmentData, + // }); - fastify.get("/api/getalldepartments", { + fastify.get("/api/getallcities", { schema: { tags: ["Department"], - description: "This is for Get all Department Data", - summary: "This is for to Get all Department Data", + description: "This is for Get all cities Data", + summary: "This is for to Get all cities Data", security: [ { @@ -75,37 +75,37 @@ module.exports = function (fastify, opts, next) { ], }, //preHandler: fastify.auth([fastify.authenticate]), - handler: departmentController.getalldepartmants, + handler: departmentController.getallcities, }); - fastify.get("/api/getalldepartmentsParticularFileds", { - schema: { - tags: ["Department"], - description: "This is for Get all Department particular fileds Data", - summary: "This is for to Get all Department particular fields Data", + // fastify.get("/api/getalldepartmentsParticularFileds", { + // schema: { + // tags: ["Department"], + // description: "This is for Get all Department particular fileds Data", + // summary: "This is for to Get all Department particular fields Data", - security: [ - { - basicAuth: [], - }, - ], - }, - //preHandler: fastify.auth([fastify.authenticate]), - handler: departmentController.getAllDepartmentsParticularFields, - }); + // security: [ + // { + // basicAuth: [], + // }, + // ], + // }, + // //preHandler: fastify.auth([fastify.authenticate]), + // handler: departmentController.getAllDepartmentsParticularFields, + // }); - fastify.delete("/api/deletedepartment/:departmentId", { + fastify.delete("/api/deletecity/:cityId", { schema: { - description: "Delete a Department by departmentId", + description: "Delete a city by cityId", tags: ["Department"], - summary: "Delete a user by departmentId", + summary: "Delete a user by city", params: { type: "object", properties: { - departmentId: { type: "string" }, // Customer ID + cityId: { type: "string" }, }, - required: ["departmentId"], + required: ["cityId"], }, response: { 200: { @@ -117,20 +117,20 @@ module.exports = function (fastify, opts, next) { } } }, - handler: departmentController.deletedepartmentInfo, + handler: departmentController.deletecityInfo, }); - fastify.put('/api/editdepartment/:departmentId', { + fastify.put('/api/editcity/:cityId', { schema: { - description: "Edit Department details by departmentId", + description: "Edit City details by cityId", tags: ["Department"], - summary: "Edit Department details.", + summary: "Edit City details.", params: { type: "object", properties: { - departmentId: { type: "string" }, + cityId: { type: "string" }, }, - required: ["departmentId"], + required: ["cityId"], }, body: { type: "object", @@ -148,23 +148,26 @@ module.exports = function (fastify, opts, next) { }, } }, - handler: departmentController.editdepartment, + handler: departmentController.editcity, }); fastify.route({ method: "POST", - url: "/api/desginationSignup", + url: "/api/departmentSignup", schema: { tags: ["Department"], - description: "This is for creating a new Desgination Account", - summary: "This is for creating a new Desgination Account", + description: "This is for creating a new Department Account", + summary: "This is for creating a new Department Account", body: { type: "object", //required: ["phone", "username", "password", "role"], // Add role to required fields properties: { phone: { type: "string" }, password: { type: "string" }, + alternativeContactNumber: { type: "string" }, + personalEmail: { type: "string" }, + gender: { type: "string" }, city: { type: "string" }, state: { type: "string" }, country: { type: "string" }, @@ -190,20 +193,20 @@ module.exports = function (fastify, opts, next) { }, ], }, - handler: departmentController.addDesgination, + handler: departmentController.addDepartment, }); - fastify.get("/api/getSingledesginationData/:desginationId", { + fastify.get("/api/getSingledepartmentData/:departmentId", { schema: { tags: ["Department"], - description: "This is for Get Single desginationId Data", - summary: "This is to Get Single desginationId Data", + description: "This is for Get Single departmentId Data", + summary: "This is to Get Single departmentId Data", params: { type: "object", properties: { - desginationId: { + departmentId: { type: "string", - description: "desginationId", + description: "departmentId", }, }, }, @@ -214,14 +217,14 @@ module.exports = function (fastify, opts, next) { }, ], }, - handler: departmentController.getSinledesginationData, + handler: departmentController.getSinledepartmentData, }); - fastify.get("/api/getalldesginations", { + fastify.get("/api/getalldepartments", { schema: { tags: ["Department"], - description: "This is for Get all designation Data", - summary: "This is for to Get all designation Data", + description: "This is for Get all departments Data", + summary: "This is for to Get all departments Data", security: [ { @@ -230,20 +233,20 @@ module.exports = function (fastify, opts, next) { ], }, //preHandler: fastify.auth([fastify.authenticate]), - handler: departmentController.getalldesgination, + handler: departmentController.getalldepartments, }); - fastify.delete("/api/deletedesignation/:desginationId", { + fastify.delete("/api/deletedepartment/:departmentId", { schema: { - description: "Delete a desgination by desginationId", + description: "Delete a Department by departmentId", tags: ["Department"], - summary: "Delete a user by desginationId", + summary: "Delete a user by departmentId", params: { type: "object", properties: { - desginationId: { type: "string" }, + departmentId: { type: "string" }, }, - required: ["desginationId"], + required: ["departmentId"], }, response: { 200: { @@ -255,25 +258,28 @@ module.exports = function (fastify, opts, next) { } } }, - handler: departmentController.deletedesginationInfo, + handler: departmentController.deletedepartmentInfo, }); - fastify.put('/api/editdesgination/:desginationId', { + fastify.put('/api/editdesgination/:departmentId', { schema: { - description: "Edit Desgination details by desginationId", + description: "Edit Department details by departmentId", tags: ["Department"], - summary: "Edit Desgination details.", + summary: "Edit Department details.", params: { type: "object", properties: { - desginationId: { type: "string" }, + departmentId: { type: "string" }, }, - required: ["desginationId"], + required: ["departmentId"], }, body: { type: "object", properties: { phone: { type: "string" }, + alternativeContactNumber: { type: "string" }, + personalEmail: { type: "string" }, + gender: { type: "string" }, city: { type: "string" }, state: { type: "string" }, country: { type: "string" }, @@ -291,24 +297,44 @@ module.exports = function (fastify, opts, next) { }, } }, - handler: departmentController.editdesgination, + handler: departmentController.editdepartment, }); - fastify.get("/api/getalldesignationsParticularFileds", { + // fastify.get("/api/getalldesignationsParticularFileds", { + // schema: { + // tags: ["Department"], + // description: "This is for Get all Designation particular fileds", + // summary: "This is for to Get all Designation particular fields", + + // security: [ + // { + // basicAuth: [], + // }, + // ], + // }, + // //preHandler: fastify.auth([fastify.authenticate]), + // handler: departmentController.getAllDesignationsParticularFields, + // }); + + fastify.route({ + method: "GET", + url: "/api/locations", schema: { tags: ["Department"], - description: "This is for Get all Designation particular fileds", - summary: "This is for to Get all Designation particular fields", - - security: [ - { - basicAuth: [], + description: "Fetch locations by city and zone", + summary: "Fetch locations by city and zone", + querystring: { + type: "object", + required: ["city", "zone"], + properties: { + city: { type: "string" }, + zone: { type: "string" }, }, - ], + }, }, - //preHandler: fastify.auth([fastify.authenticate]), - handler: departmentController.getAllDesignationsParticularFields, + handler:departmentController.getZonebasedLocations }); - + + next(); }; \ No newline at end of file