|
|
|
const fastify = require("fastify");
|
|
|
|
const supplierController = require("../controllers/supplierController");
|
|
|
|
const validationHandler = require("../handlers/supplierHandler");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
module.exports = function (fastify, opts, next) {
|
|
|
|
|
|
|
|
fastify.get("/api/suppliers/:customerId", {
|
|
|
|
schema: {
|
|
|
|
tags: ["Supplier-Data"],
|
|
|
|
description: "This is for Get All Suppliers",
|
|
|
|
summary: "This is for to Get All Suppliers",
|
|
|
|
params: {
|
|
|
|
type: "object",
|
|
|
|
properties: {
|
|
|
|
customerId: {
|
|
|
|
type: "string",
|
|
|
|
description: "customerId",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
security: [
|
|
|
|
{
|
|
|
|
basicAuth: [],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
handler: validationHandler.getSuppliers,
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
fastify.get("/api/connectedSuppliers/:customerId", {
|
|
|
|
schema: {
|
|
|
|
tags: ["Supplier-Data"],
|
|
|
|
description: "This is for Get All connected Suppliers",
|
|
|
|
summary: "This is for to Get All connected Suppliers",
|
|
|
|
params: {
|
|
|
|
type: "object",
|
|
|
|
properties: {
|
|
|
|
customerId: {
|
|
|
|
type: "string",
|
|
|
|
description: "customerId",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
security: [
|
|
|
|
{
|
|
|
|
basicAuth: [],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
handler: validationHandler.getConnectedSuppliers,
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
fastify.get("/api/pendingSuppliers/:customerId", {
|
|
|
|
schema: {
|
|
|
|
tags: ["Supplier-Data"],
|
|
|
|
description: "This is for Get All pending/rejected Suppliers",
|
|
|
|
summary: "This is for to Get All pending/rejected Suppliers",
|
|
|
|
params: {
|
|
|
|
type: "object",
|
|
|
|
properties: {
|
|
|
|
customerId: {
|
|
|
|
type: "string",
|
|
|
|
description: "customerId",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
security: [
|
|
|
|
{
|
|
|
|
basicAuth: [],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
handler: validationHandler.getPendingSuppliers,
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fastify.get("/api/pendingCustomers/:supplierId", {
|
|
|
|
schema: {
|
|
|
|
tags: ["Supplier-Data"],
|
|
|
|
description: "This is for Get All pending/rejected Customers",
|
|
|
|
summary: "This is for to Get All pending/rejected Customers",
|
|
|
|
params: {
|
|
|
|
type: "object",
|
|
|
|
properties: {
|
|
|
|
supplierId: {
|
|
|
|
type: "string",
|
|
|
|
description: "supplierId",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
security: [
|
|
|
|
{
|
|
|
|
basicAuth: [],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
handler: validationHandler.getPendingCustomers,
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fastify.get("/api/connectedCustomers/:supplierId", {
|
|
|
|
schema: {
|
|
|
|
tags: ["Supplier-Data"],
|
|
|
|
description: "This is for Get All connected Customers for Suppliers",
|
|
|
|
summary: "This is for to Get All connected Customers for suppliers",
|
|
|
|
params: {
|
|
|
|
type: "object",
|
|
|
|
properties: {
|
|
|
|
supplierId: {
|
|
|
|
type: "string",
|
|
|
|
description: "supplierId",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
security: [
|
|
|
|
{
|
|
|
|
basicAuth: [],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
handler: validationHandler.getconnectedCustomers,
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
fastify.post("/api/supplierlogin", {
|
|
|
|
schema: {
|
|
|
|
description: "This is for Login Supplier",
|
|
|
|
tags: ["Supplier-Data"],
|
|
|
|
summary: "This is for Login Supplier",
|
|
|
|
body: {
|
|
|
|
type: "object",
|
|
|
|
required: ["phone", "password"],
|
|
|
|
properties: {
|
|
|
|
phone: { type: "string" },
|
|
|
|
password: { type: "string" },
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
handler: validationHandler.loginSupplier,
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
fastify.post("/api/deliveryboylogin", {
|
|
|
|
schema: {
|
|
|
|
description: "This is for Login Delivery Boy",
|
|
|
|
tags: ["Supplier-Data"],
|
|
|
|
summary: "This is for Login Delivery Boy",
|
|
|
|
body: {
|
|
|
|
type: "object",
|
|
|
|
required: ["phone"],
|
|
|
|
properties: {
|
|
|
|
phoneVerificationCode: { type: "string" },
|
|
|
|
phone: { type: "string" },
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
handler: validationHandler.loginDeliveryBoy,
|
|
|
|
});
|
|
|
|
|
|
|
|
fastify.route({
|
|
|
|
method: "POST",
|
|
|
|
url: "/api/supplierlogout",
|
|
|
|
schema: {
|
|
|
|
description: "This is for Supplier logout",
|
|
|
|
tags: ["Supplier-Data"],
|
|
|
|
summary: "This is for Supplier logout",
|
|
|
|
params: {
|
|
|
|
type: "object",
|
|
|
|
properties: {
|
|
|
|
supplierId: {
|
|
|
|
type: "string",
|
|
|
|
description: "supplierId",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
// preHandler: fastify.auth([fastify.authenticate]),
|
|
|
|
handler: validationHandler.logoutsupplier,
|
|
|
|
// onResponse: (request,reply) => {validationHandler.resetPassword(request,reply)}
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fastify.route({
|
|
|
|
method: "POST",
|
|
|
|
url: "/api/suppliers",
|
|
|
|
schema: {
|
|
|
|
tags: ["Supplier-Data"],
|
|
|
|
description: "This is for cretae New supplier",
|
|
|
|
summary: "This is for Create New supplier.",
|
|
|
|
body: {
|
|
|
|
type: "object",
|
|
|
|
properties: {
|
|
|
|
suppliername: { type: "string" },
|
|
|
|
phone: { type: "string" },
|
|
|
|
alternativeContactNumber : { type : "string" },
|
|
|
|
password: { type: "string" },
|
|
|
|
emails: {
|
|
|
|
type: "array",
|
|
|
|
maxItems: 2,
|
|
|
|
items: {
|
|
|
|
type: "object",
|
|
|
|
properties: {
|
|
|
|
email: { type: "string", default: null },
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
office_address: { type: "string", default: null },
|
|
|
|
city: { type: "string", default: null },
|
|
|
|
state: { type: "string", default: null },
|
|
|
|
zip: { type: "string", default: null },
|
|
|
|
country: { type: "string", default: null },
|
|
|
|
latitude: { type: 'number' },
|
|
|
|
longitude: { type: 'number'}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
security: [
|
|
|
|
{
|
|
|
|
basicAuth: [],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
preHandler: [
|
|
|
|
validationHandler.fieldCheck,
|
|
|
|
validationHandler.verifySupplier,
|
|
|
|
// validationHandler.validatePhoneFormat,
|
|
|
|
validationHandler.validateEmailFormat,
|
|
|
|
],
|
|
|
|
handler: supplierController.addSupplier,
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
fastify.route({
|
|
|
|
method: "POST",
|
|
|
|
url: "/api/supplierphone",
|
|
|
|
schema: {
|
|
|
|
tags: ["Supplier-Data"],
|
|
|
|
description: "This is for verify Supplier Phone",
|
|
|
|
summary: "This is to Verify Supplier Phone.",
|
|
|
|
body: {
|
|
|
|
type: "object",
|
|
|
|
required: ["phone"],
|
|
|
|
properties: {
|
|
|
|
phoneVerificationCode: { type: "string" },
|
|
|
|
phone: { type: "string" },
|
|
|
|
},
|
|
|
|
},
|
|
|
|
security: [
|
|
|
|
{
|
|
|
|
basicAuth: [],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
// preHandler: fastify.auth([fastify.authenticate]),
|
|
|
|
handler: validationHandler.verifyPhone,
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
fastify.route({
|
|
|
|
method: "POST",
|
|
|
|
url: "/api/deliveryboyphone",
|
|
|
|
schema: {
|
|
|
|
tags: ["Supplier-Data"],
|
|
|
|
description: "This is for verify Delivery Boy Phone",
|
|
|
|
summary: "This is to Verify Delivery Boy Phone.",
|
|
|
|
body: {
|
|
|
|
type: "object",
|
|
|
|
required: ["phone"],
|
|
|
|
properties: {
|
|
|
|
phoneVerificationCode: { type: "string" },
|
|
|
|
phone: { type: "string" },
|
|
|
|
},
|
|
|
|
},
|
|
|
|
security: [
|
|
|
|
{
|
|
|
|
basicAuth: [],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
// preHandler: fastify.auth([fastify.authenticate]),
|
|
|
|
handler: validationHandler.deliveryBoyVerifyPhone,
|
|
|
|
});
|
|
|
|
|
|
|
|
fastify.route({
|
|
|
|
method: "PUT",
|
|
|
|
url: "/api/deletedeliveryboy/:supplierId",
|
|
|
|
schema: {
|
|
|
|
tags: ["Supplier-Data"],
|
|
|
|
summary: "This is for delete delivery boy",
|
|
|
|
description: "This is for delete delivery boy",
|
|
|
|
params: {
|
|
|
|
required: ["supplierId"],
|
|
|
|
type: "object",
|
|
|
|
properties: {
|
|
|
|
supplierId: {
|
|
|
|
type: "string",
|
|
|
|
description: "supplierId",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
querystring: {
|
|
|
|
phone: {type: 'string'}
|
|
|
|
},
|
|
|
|
security: [
|
|
|
|
{
|
|
|
|
basicAuth: [],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
preHandler: fastify.auth([fastify.authenticate]),
|
|
|
|
handler: validationHandler.deleteDeliveryBoy,
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
fastify.route({
|
|
|
|
method: "PUT",
|
|
|
|
url: "/api/updatedeliveryboy/:supplierId",
|
|
|
|
schema: {
|
|
|
|
tags: ["Supplier-Data"],
|
|
|
|
summary: "This is for update deliveryboy details",
|
|
|
|
params: {
|
|
|
|
required: ["supplierId"],
|
|
|
|
type: "object",
|
|
|
|
properties: {
|
|
|
|
supplierId: {
|
|
|
|
type: "string",
|
|
|
|
description: "supplierId",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
querystring: {
|
|
|
|
phone: {type: 'string'}
|
|
|
|
},
|
|
|
|
|
|
|
|
body: {
|
|
|
|
type: "object",
|
|
|
|
// required: ['phone'],
|
|
|
|
properties: {
|
|
|
|
|
|
|
|
name: { type: "string", default: null },
|
|
|
|
phone: { type: "string", default: null },
|
|
|
|
alternativeContactNumber: { type: "string" },
|
|
|
|
address: { type: "string", default: null },
|
|
|
|
city: { type: "string" , default: null},
|
|
|
|
state: { type: "string", default: null },
|
|
|
|
zip: { type: "string", default: null },
|
|
|
|
},
|
|
|
|
},
|
|
|
|
security: [
|
|
|
|
{
|
|
|
|
basicAuth: [],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
// preHandler: [
|
|
|
|
// fastify.auth([fastify.operatorAuthenticate]),
|
|
|
|
// validationHandler.validatePhoneFormat,
|
|
|
|
// ],
|
|
|
|
preHandler: fastify.auth([fastify.authenticate]),
|
|
|
|
handler: validationHandler.updateDeliveryBoy,
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fastify.route({
|
|
|
|
method: "POST",
|
|
|
|
url: "/api/suppliers/:supplierId",
|
|
|
|
schema: {
|
|
|
|
description: "To Get Supplier by supplierId",
|
|
|
|
tags: ["Supplier-Data"],
|
|
|
|
summary: "This is for Get a Single Supplier by supplierId",
|
|
|
|
params: {
|
|
|
|
type: "object",
|
|
|
|
properties: {
|
|
|
|
supplierId: {
|
|
|
|
type: "string",
|
|
|
|
description: "supplierId",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
security: [
|
|
|
|
{
|
|
|
|
basicAuth: [],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
preHandler: fastify.auth([fastify.authenticate]),
|
|
|
|
handler: validationHandler.getSingleSupplier,
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
fastify.route({
|
|
|
|
method: "POST",
|
|
|
|
url: "/api/currentsupplier",
|
|
|
|
schema: {
|
|
|
|
tags: ["Supplier-Data"],
|
|
|
|
description: "This is for Get Current Supplier by supplierId by Post Body",
|
|
|
|
summary: "This is for Get a Current Supplier.",
|
|
|
|
body: {
|
|
|
|
type: "object",
|
|
|
|
required: ["supplierId"],
|
|
|
|
properties: {
|
|
|
|
supplierId: { type: "string" },
|
|
|
|
},
|
|
|
|
},
|
|
|
|
security: [
|
|
|
|
{
|
|
|
|
basicAuth: [],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
preHandler: fastify.auth([fastify.authenticate]),
|
|
|
|
handler: validationHandler.getCurrentSupplier,
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
fastify.route({
|
|
|
|
method: "PUT",
|
|
|
|
url: "/api/update/currentSupplier/:supplierId",
|
|
|
|
schema: {
|
|
|
|
tags: ["Supplier-Data"],
|
|
|
|
summary: "This is for update current supplier",
|
|
|
|
description: "This is for update current supplier",
|
|
|
|
params: {
|
|
|
|
type: "object",
|
|
|
|
properties: {
|
|
|
|
supplierId: {
|
|
|
|
type: "string",
|
|
|
|
description: "supplierId",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
body: {
|
|
|
|
type: "object",
|
|
|
|
properties: {
|
|
|
|
phone: { type: "string" },
|
|
|
|
firstName: { type: "string" },
|
|
|
|
lastName: { type: "string" },
|
|
|
|
suppliername: { type: "string" },
|
|
|
|
emails: {
|
|
|
|
type: "array",
|
|
|
|
maxItems: 2,
|
|
|
|
items: {
|
|
|
|
type: "object",
|
|
|
|
properties: {
|
|
|
|
email: { type: "string", default: null },
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
office_address: { type: "string" },
|
|
|
|
alternativeContactNumber: { type: "string" },
|
|
|
|
city: { type: "string" },
|
|
|
|
state: { type: "string" },
|
|
|
|
country: { type: "string" },
|
|
|
|
zip: { type: "string" },
|
|
|
|
},
|
|
|
|
},
|
|
|
|
security: [
|
|
|
|
{
|
|
|
|
basicAuth: [],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
preHandler: [fastify.auth([fastify.authenticate])],
|
|
|
|
handler: supplierController.editCuurentSupplierInfo,
|
|
|
|
});
|
|
|
|
|
|
|
|
next();
|
|
|
|
}
|
|
|
|
|