You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

754 lines
18 KiB

const fastify = require("fastify");
const supplierOrderController = require("../controllers/supplierOrderController");
const validationHandler = require("../handlers/supplierHandler");
module.exports = function (fastify, opts, next) {
fastify.route({
method: "POST",
url: "/api/ordernow/:bookingId",
schema: {
tags: ["Supplier-Order"],
description:"This is for giving booking data to supplier",
summary: "This is for giving booking data to supplier",
params: {
required: ["bookingId"],
type: "object",
properties: {
bookingId: {
type: "string",
description: "bookingId",
},
},
},
body: {
type: "object",
properties: {
supplierName: {type: 'string'},
supplierId: { type: "string" },
customerId:{type:"string"},
capacity: { type: "string" },
customer_address: { type: "string" },
dateOfOrder: { type: "string"},
action:{type:"string"},
price :{type:"string"},
delivery_agent :{type:"string"},
agent_mobile :{type:"string"},
agent_alternative_mobile :{type:"string"},
expectedDateOfDelivery : { type: "string"},
},
},
security: [
{
basicAuth: [],
},
],
},
// preHandler: fastify.auth([fastify.authenticate]),
handler:supplierOrderController.orderNow,
// onResponse: (request, reply) => {
// validationHandler.sendPhoneVerificationCode(request, reply);
// },
//onResponse: validationHandler.sendPhoneVerificationCode,
});
fastify.route({
method: "POST",
url: "/api/orderStartedSms/:bookingId",
schema: {
tags: ["Supplier-Order"],
description:"This is for giving booking data to user through sms",
summary: "This is for giving booking data to user through sms",
params: {
required: ["bookingId"],
type: "object",
properties: {
bookingId: {
type: "string",
description: "bookingId",
},
},
},
security: [
{
basicAuth: [],
},
],
},
// preHandler: fastify.auth([fastify.authenticate]),
handler:supplierOrderController.orderStartedSms,
// onResponse: (request, reply) => {
// validationHandler.sendPhoneVerificationCode(request, reply);
// },
//onResponse: validationHandler.sendPhoneVerificationCode,
});
fastify.route({
method: "POST",
url: "/api/addDeliveryboys/:supplierId",
schema: {
tags: ["Delivery"],
description: "This is for adding delivery boys",
summary: "This is for adding delivery boys",
params: {
required: ["supplierId"],
type: "object",
properties: {
supplierId: {
type: "string",
description: "supplierId",
},
},
},
body: {
type: "object",
properties: {
suppliername: { type: "string"},
Name: { type: "string" },
phone: { type: "string" },
alternativeContactNumber : { type : "string" },
address: { type: "string", default: null },
city: { type: "string", default: null },
state: { type: "string", default: null },
zip: { type: "string", default: null },
status: { type: "string" },
latitude: { type: 'number', default: 0.0 },
longitude: { type: 'number', default: 0.0},
fcmId: { type: "string", default: null },
},
},
security: [
{
basicAuth: [],
},
],
},
preHandler: [
//validationHandler.fieldCheck,
//validationHandler.verifySupplier,
// validationHandler.validatePhoneFormat,
//validationHandler.validateEmailFormat,
],
handler: supplierOrderController.addDeliveryboy,
});
fastify.get("/api/getsupplierbookings/:supplierId", {
schema: {
tags: ["Supplier"],
description: "This is for Get supplier bookings Data",
summary: "This is for to Get supplier bookings Data",
params: {
required: ["supplierId"],
type: "object",
properties: {
supplierId: {
type: "string",
description: "supplierId",
},
},
},
security: [
{
basicAuth: [],
},
],
},
preHandler: fastify.auth([fastify.authenticate]),
handler: supplierOrderController.getbookingsofsupplier,
});
fastify.get("/api/getdeliveryboybookings/:agent_mobile", {
schema: {
tags: ["Delivery"],
description: "This is for Get delivery bookings Data",
summary: "This is for to Get delivery bookings Data",
params: {
required: ["agent_mobile"],
type: "object",
properties: {
agent_mobile: {
type: "string",
description: "agent_mobile",
},
},
},
security: [
{
basicAuth: [],
},
],
},
preHandler: fastify.auth([fastify.authenticate]),
handler: supplierOrderController.getbookingsofdeliveryboy,
});
fastify.get("/api/getalldeliveryboys/:supplierId", {
schema: {
tags: ["Delivery"],
description: "This is for Get all delivery boys under supplier",
summary: "This is for to Get all delivery boys under supplier",
params: {
required: ["supplierId"],
type: "object",
properties: {
supplierId: {
type: "string",
description: "supplierId",
},
},
},
security: [
{
basicAuth: [],
},
],
},
preHandler: fastify.auth([fastify.authenticate]),
handler: supplierOrderController.getalldeliveryboysofsupplier,
});
fastify.get("/api/getactivedeliveryboys/:supplierId", {
schema: {
tags: ["Delivery"],
description: "This is for Get all active delivery boys under supplier",
summary: "This is for to Get all active delivery boys under supplier",
params: {
required: ["supplierId"],
type: "object",
properties: {
supplierId: {
type: "string",
description: "supplierId",
},
},
},
security: [
{
basicAuth: [],
},
],
},
preHandler: fastify.auth([fastify.authenticate]),
handler: supplierOrderController.getactivedeliveryboysofsupplier,
});
fastify.route({
method: "PUT",
url: "/api/deliveryboystartandstop/:bookingId",
schema: {
tags: ["Delivery"],
summary: "This is for delivery boy start and stop",
params: {
required: ["bookingId"],
type: "object",
properties: {
bookingId: {
type: "string",
description: "bookingId",
},
},
},
body: {
type: "object",
// required: ['phone'],
properties: {
action: { type: "string" },
percentage: { type: "string",default: "100" },
//startTime:{ type: "string" },
//stopTime:{ type: "string" },
},
},
security: [
{
basicAuth: [],
},
],
},
// preHandler: [
// fastify.auth([fastify.operatorAuthenticate]),
// validationHandler.validatePhoneFormat,
// ],
preHandler: fastify.auth([fastify.authenticate]),
handler: supplierOrderController.deliveryboystartandstop,
});
fastify.route({
method: "PUT",
url: "/api/amountpaidByCustomer/:bookingId",
schema: {
tags: ["Delivery"],
summary: "This is for delivery boy to update the amount paid by customer after start and stop",
params: {
required: ["bookingId"],
type: "object",
properties: {
bookingId: {
type: "string",
description: "bookingId",
},
},
},
body: {
type: "object",
// required: ['phone'],
properties: {
amount_paid: { type: "string" },
payment_mode: { type: "string" },
orderStatus:{type:"string"},
deliveredDate: { type: "string"},
},
},
security: [
{
basicAuth: [],
},
],
},
// preHandler: [
// fastify.auth([fastify.operatorAuthenticate]),
// validationHandler.validatePhoneFormat,
// ],
preHandler: fastify.auth([fastify.authenticate]),
handler: supplierOrderController.amountUpdateByDeliveryBoy,
});
fastify.get("/api/userAccounts/:customerId", {
schema: {
tags: ["User"],
description: "This is for Get accounts of user",
summary: "This is for to Get accounts of user",
params: {
required: ["customerId"],
type: "object",
properties: {
customerId: {
type: "string",
description: "customerId",
},
},
},
security: [
{
basicAuth: [],
},
],
},
preHandler: fastify.auth([fastify.authenticate]),
handler: supplierOrderController.userAccounts,
});
// fastify.get("/api/userAccountsofparticularSupplier/:customerId", {
// schema: {
// tags: ["Supplier-Order"],
// description: "This is for Get accounts of user for particular supplier",
// summary: "This is for to Get accounts of user for particular supplier",
// params: {
// required: ["customerId"],
// type: "object",
// properties: {
// customerId: {
// type: "string",
// description: "customerId",
// },
// },
// },
// body: {
// type: "object",
// properties: {
// supplierId:{type:"string"}
// },
// },
// security: [
// {
// basicAuth: [],
// },
// ],
// },
// preHandler: fastify.auth([fastify.authenticate]),
// handler: supplierOrderController.userAccountsofparticularSupplier,
// });
fastify.get("/api/supplierAccounts/:supplierId", {
schema: {
tags: ["Supplier"],
description: "This is for Get accounts of Supplier",
summary: "This is for to Get accounts of Supplier",
params: {
required: ["supplierId"],
type: "object",
properties: {
supplierId: {
type: "string",
description: "supplierId",
},
},
},
security: [
{
basicAuth: [],
},
],
},
preHandler: fastify.auth([fastify.authenticate]),
handler: supplierOrderController.supplierAccounts,
});
fastify.route({
method: "PUT",
url: "/api/tankerAccounts/:supplierId",
schema: {
tags: ["Tanker-Data"],
summary: "This is for tanker accounts",
params: {
required: ["supplierId"],
type: "object",
properties: {
supplierId: {
type: "string",
description: "supplierId",
},
},
},
body: {
type: "object",
// required: ['phone'],
properties: {
customerId: { type: "string" },
tankerName: { type: "string" },
},
},
security: [
{
basicAuth: [],
},
],
},
// preHandler: [
// fastify.auth([fastify.operatorAuthenticate]),
// validationHandler.validatePhoneFormat,
// ],
preHandler: fastify.auth([fastify.authenticate]),
handler: supplierOrderController.tankerAccounts,
});
fastify.route({
method: "GET",
url: "/api/accepted/:customerId",
schema: {
tags: ["Supplier-Order"],
description:"This is for Get All order pending for delivery",
summary: "This is for Get All order pending for delivery",
params: {
required: ["customerId"],
type: "object",
properties: {
customerId: {
type: "string",
description: "customerId",
},
},
},
security: [
{
basicAuth: [],
},
],
},
handler:supplierOrderController.getAllOrderaccepted,
});
fastify.route({
method: "GET",
url: "/api/allrejected",
schema: {
tags: ["Supplier-Order"],
description:"This is for Get All order cancelled",
summary: "This is for Get All order cancelled",
// params: {
// required: ["customerId"],
// type: "object",
// properties: {
// customerId: {
// type: "string",
// description: "customerId",
// },
// },
// },
security: [
{
basicAuth: [],
},
],
},
handler:supplierOrderController.getAllOrderreject,
});
fastify.route({
method: "GET",
url: "/api/rejected/:customerId",
schema: {
tags: ["Supplier-Order"],
description:"This is for Get particular customer order cancelled",
summary: "This is for Get particular customer order cancelled",
params: {
required: ["customerId"],
type: "object",
properties: {
customerId: {
type: "string",
description: "customerId",
},
},
},
security: [
{
basicAuth: [],
},
],
},
handler:supplierOrderController.getCustomerOrderreject,
});
fastify.route({
method: "GET",
url: "/api/delivered/:customerId",
schema: {
tags: ["Supplier-Order"],
description:"This is for Get All order Delivered",
summary: "This is for Get All order Delivered",
params: {
required: ["customerId"],
type: "object",
properties: {
customerId: {
type: "string",
description: "customerId",
},
},
},
security: [
{
basicAuth: [],
},
],
},
handler:supplierOrderController.getAllOrderdelivered,
});
fastify.route({
method: "GET",
url: "/api/pendingconformation/:customerId",
schema: {
tags: ["Supplier-Order"],
description:"This is for Get All order Pending for confirmation",
summary: "This is for Get All order pending for confirmation",
params: {
required: ["customerId"],
type: "object",
properties: {
customerId: {
type: "string",
description: "customerId",
},
},
},
security: [
{
basicAuth: [],
},
],
},
handler:supplierOrderController.getAllOrderpending,
});
// fastify.route({
// method: "GET",
// url: "/api/billing/:bookingId",
// schema: {
// tags: ["Supplier-Order"],
// description:"This is for Get Billing Information",
// summary: "This is for Get Billing Information",
// params: {
// required: ["bookingId"],
// type: "object",
// properties: {
// bookingId: {
// type: "string",
// description: "bookingId",
// },
// },
// },
// security: [
// {
// basicAuth: [],
// },
// ],
// },
// handler:supplierOrderController.getBillingInfo,
// });
fastify.route({
method: "GET",
url: "/api/billinginfo/:bookingId",
schema: {
tags: ["Supplier-Order"],
description:"This is for giving booking data billing information",
summary: "This is for giving booking data billing information",
params: {
required: ["bookingId"],
type: "object",
properties: {
bookingId: {
type: "string",
description: "bookingId",
},
},
},
security: [
{
basicAuth: [],
},
],
},
// preHandler: fastify.auth([fastify.authenticate]),
handler:supplierOrderController.getBillingInfo,
// onResponse: (request, reply) => {
// validationHandler.sendPhoneVerificationCode(request, reply);
// },
//onResponse: validationHandler.sendPhoneVerificationCode,
});
fastify.route({
method: "GET",
url: "/api/userAccountsofparticularSupplier/:customerId",
schema: {
tags: ["Supplier-Order"],
description: "This is for Get accounts of user for particular supplier",
summary: "This is for to Get accounts of user for particular supplier",
params: {
required: ["customerId"],
type: "object",
properties: {
customerId: {
type: "string",
description: "customerId",
},
},
},
body: {
type: "object",
//required: ["customerId"],
properties: {
supplierId : { type : "string"}
},
},
security: [
{
basicAuth: [],
},
],
},
handler:supplierOrderController.userAccountsofparticularSupplier,
});
fastify.route({
method: "GET",
url: "/api/getAlldistrubanceamountsdetails/:customerId",
schema: {
tags: ["Supplier-Order"],
description:"This is to get all distrubance amount accounts",
summary: "This is to get all distrubance amount accounts",
params: {
required: ["customerId"],
type: "object",
properties: {
customerId: {
type: "string",
description: "customerId",
},
},
},
security: [
{
basicAuth: [],
},
],
},
handler:supplierOrderController.getAlldistrubanceamountsdetails,
});
next();
}