From 642b4fa267d27efb85fc57459e423f54ee48cf5d Mon Sep 17 00:00:00 2001 From: Bhaskara Kishore Date: Mon, 27 Mar 2023 16:54:30 +0530 Subject: [PATCH] delivery boy phone verification --- src/controllers/userController.js | 6 +++- src/handlers/supplierHandler.js | 60 ++++++++++++++++++++++++++++++- src/routes/supplierRoute.js | 26 ++++++++++++++ 3 files changed, 90 insertions(+), 2 deletions(-) diff --git a/src/controllers/userController.js b/src/controllers/userController.js index 95e10cc8..ee0bd3d9 100644 --- a/src/controllers/userController.js +++ b/src/controllers/userController.js @@ -403,13 +403,17 @@ exports.sendSms = async (request, reply) => { const message = `Welcome to Arminta !!! your OTP is ${code} please use it for login.`//`Welcome to Arminta !!! your OTP is ${code} please use it for login.`; const user = await User.findOne({phone: mobile}) const supplier = await Supplier.findOne({phone: mobile}) + const deliveryBoy = await DeliveryBoy.findOne( { phone : mobile}) if(user){ await User.findOneAndUpdate({phone: mobile}, { $set: {'phoneVerificationCode': code } }) } if(supplier){ await Supplier.findOneAndUpdate({phone: mobile}, { $set: {'phoneVerificationCode': code } }) } - + if(deliveryBoy){ + await DeliveryBoy.findOneAndUpdate({phone: mobile}, { $set: {'phoneVerificationCode': code } }) + } + const apiUrl = `https://smslogin.co/v3/api.php?username=${username}&apikey=${apiKey}&senderid=${senderId}&mobile=${mobile}&message=${encodeURIComponent(message)}`; const options = { diff --git a/src/handlers/supplierHandler.js b/src/handlers/supplierHandler.js index 9ecd368f..b924fb2a 100644 --- a/src/handlers/supplierHandler.js +++ b/src/handlers/supplierHandler.js @@ -1,5 +1,5 @@ //Get the data models -const { Supplier } = require('../models/supplier'); +const { Supplier, DeliveryBoy } = require('../models/supplier'); const { FriendRequest } = require('../models/supplier') const { ProfilePicture } = require('../models/User') const supplierController = require("../controllers/supplierController"); @@ -633,7 +633,65 @@ exports.logoutsupplier = async (request, reply) => { throw boom.boomify(err); } }; + + exports.deliveryBoyVerifyPhone = async (req, reply) => { + console.log("-------------------------------------------------"); + try { + phone = req.body.phone; + phoneVerificationCode = req.body.phoneVerificationCode; + + // check if user exists in the system. If user exists , display message that + // username is not available + console.log( + "this is the phone and verification code", + phone, + phoneVerificationCode + ); + deliveryBoyExists = await DeliveryBoy.findOne({ + phone: phone, + phoneVerified: false, + phoneVerificationCode: phoneVerificationCode, + }); + console.log(deliveryBoyExists); + if (deliveryBoyExists) { + // update the phoneVerified flag to true. + const filter = { + phone: phone, + phoneVerificationCode: phoneVerificationCode, + }; + const update = { phoneVerified: true }; + const doc = await DeliveryBoy.findOneAndUpdate(filter, update); + updatedDeliveryBoy = await DeliveryBoy.findOne({ phone: phone }); + + if (updatedDeliveryBoy.phoneVerified) { + reply.send('{"armintatankdata":{"error":false,"verified": true}}'); + } else { + error = { + armintatankdata: { + error: true, + code: 10005, + message: "10005 - Verification code entered cannot be validated.", + }, + }; + req.body.regError = error; + reply.send(error); + } + } else { + error = { + armintatankdata: { + error: true, + code: 10005, + message: "10005 - Verification code entered cannot be validated.", + }, + }; + req.body.regError = error; + reply.send(error); + } + } catch (err) { + throw boom.boomify(err); + } + }; // Get current supplier exports.getCurrentSupplier = async (req, reply) => { diff --git a/src/routes/supplierRoute.js b/src/routes/supplierRoute.js index d5a26746..808458b2 100644 --- a/src/routes/supplierRoute.js +++ b/src/routes/supplierRoute.js @@ -217,6 +217,32 @@ module.exports = function (fastify, opts, next) { }); + 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: "POST", url: "/api/suppliers/:supplierId",