const departmentController = require('../controllers/departmentController') module.exports = function (fastify, opts, next) { fastify.route({ method: "POST", url: "/api/citySignup", schema: { tags: ["Department"], description: "This is for creating a new City account", summary: "This is for creating a new City account", body: { type: "object", properties: { phone: { type: "string" }, city: { type: "string" }, officeName: { type: "string" }, location: { type: "array", items: { type: "string" }, }, state: { type: "string" }, email: { type: "string" }, country: { type: "string" }, office_address1: { type: "string" }, address2: { type: "string" }, zone: { type: "string" }, pincode: { type: "string" }, //departmentName: { type: "string" }, }, }, security: [ { basicAuth: [], }, ], }, 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", // }, // }, // }, // security: [ // { // basicAuth: [], // }, // ], // }, // handler: departmentController.getSinledepartmentData, // }); // fastify.get("/api/getallcities", { // schema: { // tags: ["Department"], // description: "This is for Get all cities Data", // summary: "This is for to Get all cities Data", // security: [ // { // basicAuth: [], // }, // ], // }, // //preHandler: fastify.auth([fastify.authenticate]), // 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", // security: [ // { // basicAuth: [], // }, // ], // }, // //preHandler: fastify.auth([fastify.authenticate]), // handler: departmentController.getAllDepartmentsParticularFields, // }); fastify.get("/api/getallcompanyNames", { schema: { tags: ["Department"], description: "This is for Get all Company Name in city schema ", summary: "This is for to Get all Company Name in city schema ", security: [ { basicAuth: [], }, ], }, //preHandler: fastify.auth([fastify.authenticate]), handler: departmentController.getallCompanyNames, }); fastify.delete("/api/deletecity/:cityId", { schema: { description: "Delete a city by cityId", tags: ["Department"], summary: "Delete a user by city", params: { type: "object", properties: { cityId: { type: "string" }, }, required: ["cityId"], }, response: { 200: { type: "object", properties: { success: { type: "boolean" }, message: { type: "string" }, } } } }, handler: departmentController.deletecityInfo, }); fastify.put('/api/editcity/:cityId', { schema: { description: "Edit City details by cityId", tags: ["Department"], summary: "Edit City details.", params: { type: "object", properties: { cityId: { type: "string" }, }, required: ["cityId"], }, body: { type: "object", properties: { phone: { type: "string" }, city: { type: "string" }, state: { type: "string" }, country: { type: "string" }, address1: { type: "string" }, address2: { type: "string" }, zone: { type: "string" }, pincode: { type: "string" }, officeName: { type: "string" }, email: { type: "string" }, }, } }, handler: departmentController.editcity, }); fastify.route({ method: "POST", url: "/api/departmentSignup", schema: { tags: ["Department"], description: "This is for creating a new Team Member Account", summary: "This is for creating a new Team Member 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" }, address1: { type: "string" }, address2: { type: "string" }, zone: { type: "string" }, pincode: { type: "string" }, desginationName: { type: "string" }, departmentName: { type: "string" }, firstName: { type: "string" }, lastName: { type: "string" }, reportingManager: { type: "string" }, email: { type: "string" }, personal_city: { type: "string"}, officeName: { type: "string"}, reportingManager_mobile_number: { type: "string"}, reportingManager_email: { type: "string"}, location: { type: "array", items: { type: "string" }, }, }, }, security: [ { basicAuth: [], }, ], }, handler: departmentController.addDepartment, }); 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, }); fastify.get("/api/getalldepartments", { schema: { tags: ["Department"], description: "This is for Get all departments Data", summary: "This is for to Get all departments Data", security: [ { basicAuth: [], }, ], }, //preHandler: fastify.auth([fastify.authenticate]), handler: departmentController.getalldepartments, }); fastify.get("/api/getallcitiesdata", { schema: { tags: ["Department"], description: "This is for Get all Cities Data for City Schema", summary: "This is for to Get all Cities Data for City Schema", security: [ { basicAuth: [], }, ], }, //preHandler: fastify.auth([fastify.authenticate]), handler: departmentController.getallCitiesData, }); fastify.get("/api/getallzonesdata", { schema: { tags: ["Department"], description: "This is for Get all Zones Data for City Schema", summary: "This is for to Get all Zones Data for City Schema", security: [ { basicAuth: [], }, ], }, //preHandler: fastify.auth([fastify.authenticate]), handler: departmentController.getallZonesData, }); fastify.get("/api/getalllocationsdata", { schema: { tags: ["Department"], description: "This is for Get all Locations Data for City Schema", summary: "This is for to Get all Locations Data for City Schema", security: [ { basicAuth: [], }, ], }, //preHandler: fastify.auth([fastify.authenticate]), handler: departmentController.getallLocationData, }); fastify.delete("/api/deletedepartment/:departmentId", { schema: { description: "Delete a Department by departmentId", tags: ["Department"], summary: "Delete a user by departmentId", params: { type: "object", properties: { departmentId: { type: "string" }, }, required: ["departmentId"], }, response: { 200: { type: "object", properties: { success: { type: "boolean" }, message: { type: "string" }, } } } }, handler: departmentController.deletedepartmentInfo, }); fastify.put('/api/editdesgination/:departmentId', { schema: { description: "Edit Department details by departmentId", tags: ["Department"], summary: "Edit Department details.", params: { type: "object", properties: { departmentId: { type: "string" }, }, 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" }, address1: { type: "string" }, address2: { type: "string" }, zone: { type: "string" }, pincode: { type: "string" }, desginationName: { type: "string" }, email: { type: "string" }, reportingManager: { type: "string" }, departmentName: { type: "string" }, firstName: { type: "string" }, lastName: { type: "string" }, personal_city: { type: "string"}, officeName: { type: "string"}, reportingManager_mobile_number: { type: "string"}, reportingManager_email: { type: "string"}, }, } }, handler: departmentController.editdepartment, }); // 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: "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" }, }, }, }, handler:departmentController.getZonebasedLocations }); fastify.route({ method: "GET", url: "/api/zonebasedlocations/:zone", schema: { tags: ["Department"], description: "Get the locations by zone", summary: "Get the locations by zone", params: { type: "object", properties: { zone: { type: "string" }, }, }, }, handler:departmentController.getLocationsByZone }); fastify.route({ method: "GET", url: "/api/zonebasedcity/:city", schema: { tags: ["Department"], description: "Get the zones by city", summary: "Get the zones by city", params: { type: "object", properties: { city: { type: "string" }, }, }, }, handler:departmentController.getZonesByCity }); fastify.route({ method: "GET", url: "/api/departmentNamebaselist/:departmentName", schema: { tags: ["Department"], description: "Department name based list", summary: "Department name based list", params: { type: "object", properties: { departmentName: { type: "string" }, }, }, }, handler:departmentController.getDepartments }); fastify.get("/api/getalldepartmentNames", { schema: { tags: ["Department"], description: "This is for Get all departmentNames Data", summary: "This is for to Get all departmentNames Data", security: [ { basicAuth: [], }, ], }, //preHandler: fastify.auth([fastify.authenticate]), handler: departmentController.getAllDepartmentNames, }); fastify.route({ method: "POST", url: "/api/branchSignup", schema: { tags: ["Department"], description: "This is for creating a new Branch account", summary: "This is for creating a new Branch account", body: { type: "object", properties: { phone: { type: "string" }, land_line_number: { type: "string" }, city: { type: "string" }, officeName: { type: "string" }, location: { type: "array", items: { type: "string" }, }, state: { type: "string" }, email: { type: "string" }, country: { type: "string" }, office_address1: { type: "string" }, address2: { type: "string" }, zone: { type: "string" }, pincode: { type: "string" }, //departmentName: { type: "string" }, }, }, security: [ { basicAuth: [], }, ], }, handler: departmentController.addBranch, }); fastify.delete("/api/deletebranch/:branchId", { schema: { description: "Delete a city by branchId", tags: ["Department"], summary: "Delete a user by branch", params: { type: "object", properties: { branchId: { type: "string" }, }, required: ["branchId"], }, response: { 200: { type: "object", properties: { success: { type: "boolean" }, message: { type: "string" }, } } } }, handler: departmentController.deleteBranchInfo, }); fastify.put('/api/editbranch/:branchId', { schema: { description: "Edit Branch details by branch", tags: ["Department"], summary: "Edit Branch details.", params: { type: "object", properties: { branchId: { type: "string" }, }, required: ["branchId"], }, body: { type: "object", properties: { phone: { type: "string" }, land_line_number: { type: "string" }, city: { type: "string" }, state: { type: "string" }, country: { type: "string" }, address1: { type: "string" }, address2: { type: "string" }, zone: { type: "string" }, pincode: { type: "string" }, officeName: { type: "string" }, email: { type: "string" }, }, } }, handler: departmentController.editBranch, }); fastify.get("/api/getCitiesByOfficeName/:officeName", { schema: { tags: ["Department"], description: "This is for Get cities by OfficeName Data", summary: "This is to Get cities by OfficeName Data", params: { type: "object", properties: { officeName: { type: "string", description: "officeName", }, }, }, security: [ { basicAuth: [], }, ], }, handler: departmentController.getCitiesByOfficeName, }); next(); };