From cb9fb519eaa2fd5ce4e052bb1617d6448c5270a0 Mon Sep 17 00:00:00 2001 From: varun Date: Mon, 27 Mar 2023 04:31:42 -0400 Subject: [PATCH] getting connected suppliers --- src/handlers/supplierHandler.js | 62 ++++++++++++++++++++++++--------- src/routes/supplierRoute.js | 27 ++++++++++++++ 2 files changed, 72 insertions(+), 17 deletions(-) diff --git a/src/handlers/supplierHandler.js b/src/handlers/supplierHandler.js index 8615f467..568d6e1f 100644 --- a/src/handlers/supplierHandler.js +++ b/src/handlers/supplierHandler.js @@ -537,13 +537,37 @@ exports.getCurrentSupplier = async (req, reply) => { throw boom.boomify(err); } }; -// Get all users -exports.getSuppliers1 = async (req, reply) => { +// Get all suppliers +// exports.getSuppliers = async (req, reply) => { +// const limit = parseInt(req.query.limit) || 100; +// const page = parseInt(req.query.page) || 1; +// const startindex = (page - 1) * limit; +// try { +// await Supplier.find() +// .limit(limit) +// .skip(startindex) +// .exec() +// .then((docs) => { +// reply.send({ status_code: 200, data: docs, count: docs.length }); +// }) +// .catch((err) => { +// console.log(err); +// reply.send({ error: err }); +// }); +// } catch (err) { +// throw boom.boomify(err); +// } +// }; + +exports.getSuppliers = async (req, reply) => { const limit = parseInt(req.query.limit) || 100; const page = parseInt(req.query.page) || 1; 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 try { - await Supplier.find() + const friendRequests = await FriendRequest.find({ customerId }); + const supplierIdsToExclude = friendRequests.map((request) => request.supplierId); + await Supplier.find({ supplierId: { $nin: supplierIdsToExclude } }) .limit(limit) .skip(startindex) .exec() @@ -559,15 +583,29 @@ exports.getSuppliers1 = async (req, reply) => { } }; -exports.getSuppliers = async (req, reply) => { + +// Get single user by ID +exports.getSingleSupplier = async (req, reply) => { + try { + const supplierId = req.params.supplierId; + const supplier = await Supplier.findOne({ supplierId: supplierId }); + return supplier; + } catch (err) { + throw boom.boomify(err); + } +}; + +exports.getConnectedSuppliers = async (req, reply) => { const limit = parseInt(req.query.limit) || 100; const page = parseInt(req.query.page) || 1; 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 + console.log(customerId,"HI") try { - const friendRequests = await FriendRequest.find({ customerId }); - const supplierIdsToExclude = friendRequests.map((request) => request.supplierId); - await Supplier.find({ supplierId: { $nin: supplierIdsToExclude } }) + const friendRequests = await FriendRequest.find({ customerId, status: "accepted" }); + console.log(friendRequests,customerId) + const supplierIdsToInclude = friendRequests.map((request) => request.supplierId); + await Supplier.find({ supplierId: { $in: supplierIdsToInclude } }) .limit(limit) .skip(startindex) .exec() @@ -584,13 +622,3 @@ exports.getSuppliers = async (req, reply) => { }; -// Get single user by ID -exports.getSingleSupplier = async (req, reply) => { - try { - const supplierId = req.params.supplierId; - const supplier = await Supplier.findOne({ supplierId: supplierId }); - return supplier; - } catch (err) { - throw boom.boomify(err); - } -}; diff --git a/src/routes/supplierRoute.js b/src/routes/supplierRoute.js index 2a5cd4d6..986fff0c 100644 --- a/src/routes/supplierRoute.js +++ b/src/routes/supplierRoute.js @@ -31,6 +31,33 @@ module.exports = function (fastify, opts, next) { 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.post("/api/supplierlogin", { schema: { description: "This is for Login Supplier",