varun 3 years ago
commit b52fc1067b

@ -1,7 +1,7 @@
//Get the data models //Get the data models
const { Supplier, DeliveryBoy } = require('../models/supplier'); const { Supplier, DeliveryBoy } = require("../models/supplier");
const { FriendRequest } = require('../models/supplier') const { FriendRequest } = require("../models/supplier");
const { ProfilePicture, User } = require('../models/User') const { ProfilePicture, User } = require("../models/User");
const supplierController = require("../controllers/supplierController"); const supplierController = require("../controllers/supplierController");
const customJwtAuth = require("../customAuthJwt"); const customJwtAuth = require("../customAuthJwt");
const fastify = require("fastify")({ const fastify = require("fastify")({
@ -19,7 +19,6 @@ const boom = require("boom");
const emailValidator = require("email-validator"); const emailValidator = require("email-validator");
const libphonenumberjs = require("libphonenumber-js"); const libphonenumberjs = require("libphonenumber-js");
fastify.register(customJwtAuth); fastify.register(customJwtAuth);
const schema = { const schema = {
@ -51,9 +50,7 @@ fastify.register(fastifyEnv, options).ready((err) => {
port: fastify.config.PORT, port: fastify.config.PORT,
APIVERSION: fastify.config.APIVERSION, APIVERSION: fastify.config.APIVERSION,
}); });
}); });
const apiversion = "1.0.0"; const apiversion = "1.0.0";
@ -93,7 +90,10 @@ isSupplierFormUrlEncoded = (req) => {
}, },
}; };
return { isSupplierFormUrlEncoded: isSupplierFormUrlEncoded, supplier: s_data }; return {
isSupplierFormUrlEncoded: isSupplierFormUrlEncoded,
supplier: s_data,
};
} else { } else {
return { isSupplierFormUrlEncoded: false, s_data: "" }; return { isSupplierFormUrlEncoded: false, s_data: "" };
} }
@ -107,24 +107,21 @@ fastify.register((fastify, opts, done) => {
{ parseAs: "buffer" }, { parseAs: "buffer" },
function (_req, body, done) { function (_req, body, done) {
try { try {
done(null, body) done(null, body);
} catch (error) { } catch (error) {
error.statusCode = 400 error.statusCode = 400;
done(error, undefined) done(error, undefined);
} }
} }
) );
done(null)
})
done(null);
});
//Login Supplier Handler //Login Supplier Handler
exports.loginSupplier = async(request, reply) =>{ exports.loginSupplier = async (request, reply) => {
loginObject = await supplierController.loginSupplier(request); loginObject = await supplierController.loginSupplier(request);
console.log("loginObject...",loginObject) console.log("loginObject...", loginObject);
if (loginObject.same) { if (loginObject.same) {
const phoneVerified = loginObject.supplier.phoneVerified; const phoneVerified = loginObject.supplier.phoneVerified;
const oneTimePasswordSetFlag = loginObject.supplier.oneTimePasswordSetFlag; const oneTimePasswordSetFlag = loginObject.supplier.oneTimePasswordSetFlag;
@ -167,15 +164,15 @@ exports.loginSupplier = async(request, reply) =>{
//otherwise milliseconds unit is used by default ("120" is equal to "120ms"). //otherwise milliseconds unit is used by default ("120" is equal to "120ms").
{ expiresIn: "30d" } { expiresIn: "30d" }
); );
console.log(token, "..token") console.log(token, "..token");
var arr = loginObject.supplier.profile.role; var arr = loginObject.supplier.profile.role;
var arrayToString = JSON.stringify(Object.assign({}, arr)); // convert array to string var arrayToString = JSON.stringify(Object.assign({}, arr)); // convert array to string
var stringToJsonObject = JSON.parse(arrayToString); // convert string to json object var stringToJsonObject = JSON.parse(arrayToString); // convert string to json object
var s_id = loginObject.supplier.supplierId var s_id = loginObject.supplier.supplierId;
console.log(s_id,"supplierId") console.log(s_id, "supplierId");
var profilePicture = await ProfilePicture.findOne({ supplierId:s_id}); var profilePicture = await ProfilePicture.findOne({ supplierId: s_id });
// request.session.set('supplierId', loginObject.supplier._id) // request.session.set('supplierId', loginObject.supplier._id)
@ -199,13 +196,14 @@ exports.loginSupplier = async(request, reply) =>{
typeasobj: stringToJsonObject, typeasobj: stringToJsonObject,
}, },
}); });
}if (profilePicture) { }
if (profilePicture) {
reply.send({ reply.send({
simplydata: { simplydata: {
error: false, error: false,
apiversion: fastify.config.APIVERSION, apiversion: fastify.config.APIVERSION,
access_token: token, access_token: token,
picture:profilePicture.picture, picture: profilePicture.picture,
email: loginObject.supplier.emails, email: loginObject.supplier.emails,
phone: loginObject.supplier.phone, phone: loginObject.supplier.phone,
supplierId: loginObject.supplier.supplierId, supplierId: loginObject.supplier.supplierId,
@ -220,7 +218,6 @@ exports.loginSupplier = async(request, reply) =>{
}, },
}); });
} }
} }
} else { } else {
error = { error = {
@ -232,13 +229,10 @@ exports.loginSupplier = async(request, reply) =>{
}; };
reply.send(error); reply.send(error);
} }
} };
//Login Delivery Handler //Login Delivery Handler
exports.loginDeliveryBoy = async(request, reply) =>{ exports.loginDeliveryBoy = async (request, reply) => {
phone = request.body.phone; phone = request.body.phone;
phoneVerificationCode = request.body.phoneVerificationCode; phoneVerificationCode = request.body.phoneVerificationCode;
@ -266,7 +260,7 @@ exports.loginDeliveryBoy = async(request, reply) =>{
updatedDeliveryBoy = await DeliveryBoy.findOne({ phone: phone }); updatedDeliveryBoy = await DeliveryBoy.findOne({ phone: phone });
} }
loginObject = await supplierController.loginDeliveryBoy(request); loginObject = await supplierController.loginDeliveryBoy(request);
console.log("loginObject...",loginObject) console.log("loginObject...", loginObject);
if (loginObject.same) { if (loginObject.same) {
const phoneVerified = loginObject.delivery.phoneVerified; const phoneVerified = loginObject.delivery.phoneVerified;
const oneTimePasswordSetFlag = loginObject.delivery.oneTimePasswordSetFlag; const oneTimePasswordSetFlag = loginObject.delivery.oneTimePasswordSetFlag;
@ -308,19 +302,17 @@ exports.loginDeliveryBoy = async(request, reply) =>{
//otherwise milliseconds unit is used by default ("120" is equal to "120ms"). //otherwise milliseconds unit is used by default ("120" is equal to "120ms").
{ expiresIn: "30d" } { expiresIn: "30d" }
); );
console.log(token, "..token") console.log(token, "..token");
var d_id = loginObject.delivery._id
console.log(d_id,"deliveryId") var d_id = loginObject.delivery._id;
var profilePicture = await ProfilePicture.findOne({ deliveryBoyId:d_id});
console.log(d_id, "deliveryId");
var profilePicture = await ProfilePicture.findOne({
deliveryBoyId: d_id,
});
// request.session.set('supplierId', loginObject.supplier._id) // request.session.set('supplierId', loginObject.supplier._id)
if (!profilePicture) { if (!profilePicture) {
reply.send({ reply.send({
simplydata: { simplydata: {
@ -328,7 +320,6 @@ exports.loginDeliveryBoy = async(request, reply) =>{
apiversion: fastify.config.APIVERSION, apiversion: fastify.config.APIVERSION,
access_token: token, access_token: token,
phone: loginObject.delivery.phone, phone: loginObject.delivery.phone,
deliveryBoyId: loginObject.delivery.deliveryBoyId, deliveryBoyId: loginObject.delivery.deliveryBoyId,
deliveryBoyname: loginObject.delivery.name, deliveryBoyname: loginObject.delivery.name,
@ -337,17 +328,18 @@ exports.loginDeliveryBoy = async(request, reply) =>{
oneTimePasswordSetFlag: loginObject.delivery.oneTimePasswordSetFlag, oneTimePasswordSetFlag: loginObject.delivery.oneTimePasswordSetFlag,
supplierId: loginObject.delivery.supplierId, supplierId: loginObject.delivery.supplierId,
suppliername: loginObject.delivery.suppliername, suppliername: loginObject.delivery.suppliername,
longitude:loginObject.delivery. longitude, longitude: loginObject.delivery.longitude,
latitude:loginObject.delivery.latitude, latitude: loginObject.delivery.latitude,
}, },
}); });
}if (profilePicture) { }
if (profilePicture) {
reply.send({ reply.send({
simplydata: { simplydata: {
error: false, error: false,
apiversion: fastify.config.APIVERSION, apiversion: fastify.config.APIVERSION,
access_token: token, access_token: token,
picture:profilePicture.picture, picture: profilePicture.picture,
phone: loginObject.delivery.phone, phone: loginObject.delivery.phone,
deliveryBoyId: loginObject.delivery.deliveryBoyId, deliveryBoyId: loginObject.delivery.deliveryBoyId,
deliveryBoyname: loginObject.delivery.name, deliveryBoyname: loginObject.delivery.name,
@ -356,13 +348,151 @@ exports.loginDeliveryBoy = async(request, reply) =>{
oneTimePasswordSetFlag: loginObject.delivery.oneTimePasswordSetFlag, oneTimePasswordSetFlag: loginObject.delivery.oneTimePasswordSetFlag,
supplierId: loginObject.delivery.supplierId, supplierId: loginObject.delivery.supplierId,
suppliername: loginObject.delivery.suppliername, suppliername: loginObject.delivery.suppliername,
longitude:loginObject.delivery. longitude, longitude: loginObject.delivery.longitude,
latitude:loginObject.delivery.latitude, latitude: loginObject.delivery.latitude,
}, },
}); });
} }
}
} else {
error = {
simplydata: {
error: true,
code: 400,
message: "Invalid Details",
},
};
reply.send(error);
}
};
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) {
loginObject = await supplierController.loginDeliveryBoy(req);
console.log("loginObject...", loginObject);
if (loginObject.same) {
const phoneVerified = loginObject.delivery.phoneVerified;
const oneTimePasswordSetFlag =
loginObject.delivery.oneTimePasswordSetFlag;
console.log(
"oneTimePasswordSetFlag is ......",
oneTimePasswordSetFlag,
typeof oneTimePasswordSetFlag,
typeof phoneVerified
);
if (!phoneVerified) {
reply.send({
simplydata: {
error: false,
phoneVerified: false,
phone: loginObject.delivery.phone,
oneTimePasswordSetFlag: oneTimePasswordSetFlag,
message: "Please Verify your phone number",
},
});
} else if (oneTimePasswordSetFlag) {
reply.send({
simplydata: {
error: false,
phoneVerified: phoneVerified,
phone: loginObject.delivery.phone,
oneTimePasswordSetFlag: true,
message: "Password must be reset",
},
});
} else {
const token = fastify.jwt.sign(
{
deliveryBoyname: loginObject.delivery.name,
deliveryBoyId: loginObject.delivery._id,
},
//expiresIn: expressed in seconds or a string describing a time span zeit/ms. Eg: 60, "2 days", "10h", "7d".
//A numeric value is interpreted as a seconds count. If you use a string be sure you provide the time units (days, hours, etc),
//otherwise milliseconds unit is used by default ("120" is equal to "120ms").
{ expiresIn: "30d" }
);
console.log(token, "..token");
var d_id = loginObject.delivery._id;
console.log(d_id, "deliveryId");
var profilePicture = await ProfilePicture.findOne({
deliveryBoyId: d_id,
});
// request.session.set('supplierId', loginObject.supplier._id)
if (!profilePicture) {
reply.send({
simplydata: {
error: false,
apiversion: fastify.config.APIVERSION,
access_token: token,
phone: loginObject.delivery.phone,
deliveryBoyId: loginObject.delivery.deliveryBoyId,
deliveryBoyname: loginObject.delivery.name,
address: loginObject.delivery.address,
phoneVerified: loginObject.delivery.phoneVerified,
oneTimePasswordSetFlag:
loginObject.delivery.oneTimePasswordSetFlag,
supplierId: loginObject.delivery.supplierId,
suppliername: loginObject.delivery.suppliername,
longitude: loginObject.delivery.longitude,
latitude: loginObject.delivery.latitude,
},
});
}
if (profilePicture) {
reply.send({
simplydata: {
error: false,
apiversion: fastify.config.APIVERSION,
access_token: token,
picture: profilePicture.picture,
phone: loginObject.delivery.phone,
deliveryBoyId: loginObject.delivery.deliveryBoyId,
deliveryBoyname: loginObject.delivery.name,
address: loginObject.delivery.address,
phoneVerified: loginObject.delivery.phoneVerified,
oneTimePasswordSetFlag:
loginObject.delivery.oneTimePasswordSetFlag,
supplierId: loginObject.delivery.supplierId,
suppliername: loginObject.delivery.suppliername,
longitude: loginObject.delivery.longitude,
latitude: loginObject.delivery.latitude,
},
});
}
} }
} else { } else {
error = { error = {
@ -374,8 +504,22 @@ exports.loginDeliveryBoy = async(request, reply) =>{
}; };
reply.send(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);
}
};
// Check if all the required fields are supplied by the user // Check if all the required fields are supplied by the user
@ -385,7 +529,7 @@ exports.fieldCheck = async (req, reply) => {
suppliername: req.body.suppliername, suppliername: req.body.suppliername,
emails: req.body.emails, emails: req.body.emails,
password: req.body.password, password: req.body.password,
services: { password: {bcrypt: req.body.password} }, services: { password: { bcrypt: req.body.password } },
phone: req.body.phone, phone: req.body.phone,
profile: { profile: {
firstName: req.body.firstName, firstName: req.body.firstName,
@ -402,7 +546,7 @@ exports.fieldCheck = async (req, reply) => {
var supplier = new Supplier(s_Data); var supplier = new Supplier(s_Data);
console.log(supplier,"..supplier") console.log(supplier, "..supplier");
//password is not at the top level in the collection. //password is not at the top level in the collection.
password = req.body.password; password = req.body.password;
@ -416,7 +560,13 @@ exports.fieldCheck = async (req, reply) => {
supplier.emails = suppliertobeInserted.emails; supplier.emails = suppliertobeInserted.emails;
password = suppliertobeInserted.password; password = suppliertobeInserted.password;
} }
console.log("User to be inserted is ", supplier.suppliername,password,supplier.phone,supplier.profile); console.log(
"User to be inserted is ",
supplier.suppliername,
password,
supplier.phone,
supplier.profile
);
// check if all rerquired fields are passed. // check if all rerquired fields are passed.
if ( if (
!( !(
@ -578,7 +728,9 @@ exports.validateEmailFormat = async (req, reply) => {
error: true, error: true,
code: 10003, code: 10003,
message: message:
"10003 - Email " + supplier.emails[0].email + " is not a valid email", "10003 - Email " +
supplier.emails[0].email +
" is not a valid email",
}, },
}; };
req.body.regError = error; req.body.regError = error;
@ -590,27 +742,23 @@ exports.validateEmailFormat = async (req, reply) => {
} }
}; };
exports.logoutsupplier = async (request, reply) => { exports.logoutsupplier = async (request, reply) => {
// request.session.delete(); // request.session.delete();
// // send response to clear token // // send response to clear token
// reply.send({ message: 'Successfully logged out' }) // reply.send({ message: 'Successfully logged out' })
const invalidatedTokens = {}; const invalidatedTokens = {};
const accessToken = request.headers.authorization && request.body.access_token; const accessToken =
request.headers.authorization && request.body.access_token;
invalidatedTokens[accessToken] = true; invalidatedTokens[accessToken] = true;
// // localStorage.removeItem(invalidatedTokens[accessToken]) // // localStorage.removeItem(invalidatedTokens[accessToken])
reply.send({ message: 'Logout successful' })
}
reply.send({ message: "Logout successful" });
};
exports.verifyPhone = async (req, reply) => { exports.verifyPhone = async (req, reply) => {
console.log("-------------------------------------------------"); console.log("-------------------------------------------------");
try { try {
phone = req.body.phone; phone = req.body.phone;
@ -666,91 +814,90 @@ exports.logoutsupplier = async (request, reply) => {
} catch (err) { } catch (err) {
throw boom.boomify(err); 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);
}
}
} catch (err) {
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);
// }
// }
// } catch (err) {
// throw boom.boomify(err);
// }
// };
//delete selected deliveryboy //delete selected deliveryboy
exports.deleteDeliveryBoy = async (req, reply) => { exports.deleteDeliveryBoy = async (req, reply) => {
try { try {
var supplierId = req.params.supplierId; var supplierId = req.params.supplierId;
var phone = req.query.phone; var phone = req.query.phone;
const delivery = await DeliveryBoy.findOneAndDelete({ phone: phone,supplierId:supplierId }); const delivery = await DeliveryBoy.findOneAndDelete({
phone: phone,
supplierId: supplierId,
});
reply.send({ status_code: 200, data: delivery}); reply.send({ status_code: 200, data: delivery });
// return tank; // return tank;
} catch (err) { } catch (err) {
throw boom.boomify(err); throw boom.boomify(err);
} }
}; };
//update selected Delivery Boy Details //update selected Delivery Boy Details
exports.updateDeliveryBoy = async (req, reply) => { exports.updateDeliveryBoy = async (req, reply) => {
try { try {
var supplierId = req.params.supplierId; var supplierId = req.params.supplierId;
var phone = req.query.phone; var phone = req.query.phone;
const delivery = req.body; const delivery = req.body;
const { ...updateData } = delivery; const { ...updateData } = delivery;
const update = await DeliveryBoy.findOneAndUpdate({ phone: phone,supplierId:supplierId, }, updateData, { new: true }); const update = await DeliveryBoy.findOneAndUpdate(
console.log(update) { phone: phone, supplierId: supplierId },
updateData,
{ new: true }
);
console.log(update);
//return update; //return update;
reply.send({ status_code: 200, data: update }); reply.send({ status_code: 200, data: update });
} catch (err) {
}
catch (err) {
throw boom.boomify(err); throw boom.boomify(err);
} }
}; };
@ -794,7 +941,9 @@ exports.getSuppliers = async (req, reply) => {
const customerId = req.params.customerId; // Assuming you have already authenticated the user and stored their ID in the request object const customerId = req.params.customerId; // Assuming you have already authenticated the user and stored their ID in the request object
try { try {
const friendRequests = await FriendRequest.find({ customerId }); const friendRequests = await FriendRequest.find({ customerId });
const supplierIdsToExclude = friendRequests.map((request) => request.supplierId); const supplierIdsToExclude = friendRequests.map(
(request) => request.supplierId
);
await Supplier.find({ supplierId: { $nin: supplierIdsToExclude } }) await Supplier.find({ supplierId: { $nin: supplierIdsToExclude } })
.limit(limit) .limit(limit)
.skip(startindex) .skip(startindex)
@ -811,7 +960,6 @@ exports.getSuppliers = async (req, reply) => {
} }
}; };
// Get single user by ID // Get single user by ID
exports.getSingleSupplier = async (req, reply) => { exports.getSingleSupplier = async (req, reply) => {
try { try {
@ -829,9 +977,14 @@ exports.getConnectedSuppliers = async (req, reply) => {
const startindex = (page - 1) * limit; const startindex = (page - 1) * limit;
const customerId = req.params.customerId; // Assuming you have already authenticated the user and stored their ID in the request object const customerId = req.params.customerId; // Assuming you have already authenticated the user and stored their ID in the request object
try { try {
const friendRequests = await FriendRequest.find({ customerId, status: "accepted" }); const friendRequests = await FriendRequest.find({
customerId,
status: "accepted",
});
// console.log(friendRequests,customerId) // console.log(friendRequests,customerId)
const supplierIdsToInclude = friendRequests.map((request) => request.supplierId); const supplierIdsToInclude = friendRequests.map(
(request) => request.supplierId
);
await Supplier.find({ supplierId: { $in: supplierIdsToInclude } }) await Supplier.find({ supplierId: { $in: supplierIdsToInclude } })
.limit(limit) .limit(limit)
.skip(startindex) .skip(startindex)
@ -848,8 +1001,6 @@ exports.getConnectedSuppliers = async (req, reply) => {
} }
}; };
exports.getPendingSuppliers = async (req, reply) => { exports.getPendingSuppliers = async (req, reply) => {
const limit = parseInt(req.query.limit) || 100; const limit = parseInt(req.query.limit) || 100;
const page = parseInt(req.query.page) || 1; const page = parseInt(req.query.page) || 1;
@ -857,10 +1008,15 @@ exports.getPendingSuppliers = async (req, reply) => {
const customerId = req.params.customerId; // Assuming you have already authenticated the user and stored their ID in the request object const customerId = req.params.customerId; // Assuming you have already authenticated the user and stored their ID in the request object
try { try {
const friendRequests = await FriendRequest.find({ customerId, status: ["pending"] }); const friendRequests = await FriendRequest.find({
customerId,
status: ["pending"],
});
// console.log(friendRequests,customerId) // console.log(friendRequests,customerId)
const supplierIdsToInclude = friendRequests.map((request) => request.supplierId); const supplierIdsToInclude = friendRequests.map(
console.log(supplierIdsToInclude, "SUPLIERINCLUDE") (request) => request.supplierId
);
console.log(supplierIdsToInclude, "SUPLIERINCLUDE");
const timestamps = friendRequests.map((request) => request.timestamp); const timestamps = friendRequests.map((request) => request.timestamp);
console.log(timestamps, "timestamps"); console.log(timestamps, "timestamps");
await Supplier.find({ supplierId: { $in: supplierIdsToInclude } }) await Supplier.find({ supplierId: { $in: supplierIdsToInclude } })
@ -868,7 +1024,16 @@ exports.getPendingSuppliers = async (req, reply) => {
.skip(startindex) .skip(startindex)
.exec() .exec()
.then((docs) => { .then((docs) => {
reply.send({ status_code: 200, data: docs, count: docs.length ,timestamps}); // const supplierDataWithTimestamp = docs.map((doc, index) => ({
// data: doc,
// //timestamp: timestamps[index],
// }));
// reply.send({
// status_code: 200,
// data: supplierDataWithTimestamp,
// count: docs.length,
// });
reply.send({ status_code: 200, data: docs, count: docs.length });
}) })
.catch((err) => { .catch((err) => {
console.log(err); console.log(err);
@ -879,7 +1044,6 @@ exports.getPendingSuppliers = async (req, reply) => {
} }
}; };
exports.getRejectSuppliers = async (req, reply) => { exports.getRejectSuppliers = async (req, reply) => {
const limit = parseInt(req.query.limit) || 100; const limit = parseInt(req.query.limit) || 100;
const page = parseInt(req.query.page) || 1; const page = parseInt(req.query.page) || 1;
@ -887,9 +1051,14 @@ exports.getRejectSuppliers = async (req, reply) => {
const customerId = req.params.customerId; // Assuming you have already authenticated the user and stored their ID in the request object const customerId = req.params.customerId; // Assuming you have already authenticated the user and stored their ID in the request object
try { try {
const friendRequests = await FriendRequest.find({ customerId, status: ["rejected"] }); const friendRequests = await FriendRequest.find({
customerId,
status: ["rejected"],
});
// console.log(friendRequests,customerId) // console.log(friendRequests,customerId)
const supplierIdsToInclude = friendRequests.map((request) => request.supplierId); const supplierIdsToInclude = friendRequests.map(
(request) => request.supplierId
);
// console.log(supplierIdsToInclude) // console.log(supplierIdsToInclude)
await Supplier.find({ supplierId: { $in: supplierIdsToInclude } }) await Supplier.find({ supplierId: { $in: supplierIdsToInclude } })
.limit(limit) .limit(limit)
@ -907,9 +1076,6 @@ exports.getRejectSuppliers = async (req, reply) => {
} }
}; };
exports.getPendingCustomers = async (req, reply) => { exports.getPendingCustomers = async (req, reply) => {
const limit = parseInt(req.query.limit) || 100; const limit = parseInt(req.query.limit) || 100;
const page = parseInt(req.query.page) || 1; const page = parseInt(req.query.page) || 1;
@ -917,10 +1083,15 @@ exports.getPendingCustomers = async (req, reply) => {
const supplierId = req.params.supplierId; // Assuming you have already authenticated the user and stored their ID in the request object const supplierId = req.params.supplierId; // Assuming you have already authenticated the user and stored their ID in the request object
try { try {
const friendRequests = await FriendRequest.find({ supplierId, status: ["pending"] }); const friendRequests = await FriendRequest.find({
console.log(friendRequests,supplierId, "su....") supplierId,
const supplierIdsToInclude = friendRequests.map((request) => request.customerId); status: ["pending"],
console.log(supplierIdsToInclude, "supplierIdsToInclude..") });
console.log(friendRequests, supplierId, "su....");
const supplierIdsToInclude = friendRequests.map(
(request) => request.customerId
);
console.log(supplierIdsToInclude, "supplierIdsToInclude..");
const timestamps = friendRequests.map((request) => request.timestamp); const timestamps = friendRequests.map((request) => request.timestamp);
console.log(timestamps, "timestamps"); console.log(timestamps, "timestamps");
await User.find({ customerId: { $in: supplierIdsToInclude } }) await User.find({ customerId: { $in: supplierIdsToInclude } })
@ -928,7 +1099,16 @@ exports.getPendingCustomers = async (req, reply) => {
.skip(startindex) .skip(startindex)
.exec() .exec()
.then((docs) => { .then((docs) => {
reply.send({ status_code: 200, data: docs, count: docs.length ,timestamps}); // const customerDataWithTimestamp = docs.map((doc, index) => ({
// data: doc,
// //timestamp: timestamps[index],
// }));
reply.send({ status_code: 200, data: docs, count: docs.length });
// reply.send({
// status_code: 200,
// data: customerDataWithTimestamp,
// count: docs.length,
// });
}) })
.catch((err) => { .catch((err) => {
console.log(err); console.log(err);
@ -939,7 +1119,6 @@ exports.getPendingCustomers = async (req, reply) => {
} }
}; };
exports.getRejectCustomers = async (req, reply) => { exports.getRejectCustomers = async (req, reply) => {
const limit = parseInt(req.query.limit) || 100; const limit = parseInt(req.query.limit) || 100;
const page = parseInt(req.query.page) || 1; const page = parseInt(req.query.page) || 1;
@ -947,10 +1126,15 @@ exports.getRejectCustomers = async (req, reply) => {
const supplierId = req.params.supplierId; // Assuming you have already authenticated the user and stored their ID in the request object const supplierId = req.params.supplierId; // Assuming you have already authenticated the user and stored their ID in the request object
try { try {
const friendRequests = await FriendRequest.find({ supplierId, status: ["rejected"] }); const friendRequests = await FriendRequest.find({
console.log(friendRequests,supplierId, "su....") supplierId,
const supplierIdsToInclude = friendRequests.map((request) => request.customerId); status: ["rejected"],
console.log(supplierIdsToInclude, "supplierIdsToInclude..") });
console.log(friendRequests, supplierId, "su....");
const supplierIdsToInclude = friendRequests.map(
(request) => request.customerId
);
console.log(supplierIdsToInclude, "supplierIdsToInclude..");
await User.find({ customerId: { $in: supplierIdsToInclude } }) await User.find({ customerId: { $in: supplierIdsToInclude } })
.limit(limit) .limit(limit)
.skip(startindex) .skip(startindex)
@ -967,7 +1151,6 @@ exports.getRejectCustomers = async (req, reply) => {
} }
}; };
exports.getconnectedCustomers = async (req, reply) => { exports.getconnectedCustomers = async (req, reply) => {
const limit = parseInt(req.query.limit) || 100; const limit = parseInt(req.query.limit) || 100;
const page = parseInt(req.query.page) || 1; const page = parseInt(req.query.page) || 1;
@ -975,10 +1158,15 @@ exports.getconnectedCustomers = async (req, reply) => {
const supplierId = req.params.supplierId; // Assuming you have already authenticated the user and stored their ID in the request object const supplierId = req.params.supplierId; // Assuming you have already authenticated the user and stored their ID in the request object
try { try {
const friendRequests = await FriendRequest.find({ supplierId, status: ["accepted"] }); const friendRequests = await FriendRequest.find({
console.log(friendRequests,supplierId, "su....") supplierId,
const supplierIdsToInclude = friendRequests.map((request) => request.customerId); status: ["accepted"],
console.log(supplierIdsToInclude, "supplierIdsToInclude..") });
console.log(friendRequests, supplierId, "su....");
const supplierIdsToInclude = friendRequests.map(
(request) => request.customerId
);
console.log(supplierIdsToInclude, "supplierIdsToInclude..");
await User.find({ customerId: { $in: supplierIdsToInclude } }) await User.find({ customerId: { $in: supplierIdsToInclude } })
.limit(limit) .limit(limit)
.skip(startindex) .skip(startindex)

@ -215,7 +215,7 @@ module.exports = function (fastify, opts, next) {
}, },
}, },
}, },
handler: validationHandler.loginDeliveryBoy, handler: validationHandler.deliveryBoyVerifyPhone,
}); });
fastify.route({ fastify.route({

Loading…
Cancel
Save