From e26b2fee31fa7f3ff20368fccf93aa0c7c07551a Mon Sep 17 00:00:00 2001 From: Bhaskara Kishore Date: Thu, 23 Mar 2023 15:23:32 +0530 Subject: [PATCH] connected status list --- src/controllers/tankersController.js | 26 +++++++++++++++++ src/models/tankers.js | 2 +- src/routes/tankersRoute.js | 42 +++++++++++++++++++++++++++- 3 files changed, 68 insertions(+), 2 deletions(-) diff --git a/src/controllers/tankersController.js b/src/controllers/tankersController.js index 43f7fc00..cc272a9f 100644 --- a/src/controllers/tankersController.js +++ b/src/controllers/tankersController.js @@ -1,4 +1,5 @@ const { Tanker, Tankerbooking,Bore,GovtPipeLine } = require('../models/tankers') +const { FriendRequest } = require('../models/supplier') const { User,Counter, generateBookingId,resetCounter,generateCustomerId } = require('../models/User') @@ -461,3 +462,28 @@ exports.status = async (req, reply) => { } }; +exports.connectionStatus = async (req, reply) => { + try { + // query the database to check if the customer and supplier are connected + const isConnected = await FriendRequest.findOne({ customerId: req.query.customerId }) + .populate('supplier', null, { supplierId: req.query.supplierId }) + .exec() + .then(customer => customer.supplier !== null); + + console.log("isconne..", isConnected) + + if (isConnected) { + // if customer and supplier are connected, return list of tankers + const tankers = await Tanker.find({ status : 'connected'}).exec(); + console.log("tankers..", tankers) + reply.send({ tankers }); + } else { + // if customer and supplier are not connected, return error + reply.status(403).send({ error: 'Forbidden' });8 + } + //res.send({ tankers }); + } catch (err) { + console.error(err); + reply.status(500).send({ error: 'Internal server error' }); + } +} \ No newline at end of file diff --git a/src/models/tankers.js b/src/models/tankers.js index 6c0b6c9f..58954b48 100644 --- a/src/models/tankers.js +++ b/src/models/tankers.js @@ -24,7 +24,7 @@ const tankersSchema = new mongoose.Schema({ type: [String], default: [] }, - status: { type: String} + status: { type: String, default: 'disconnected'} }); diff --git a/src/routes/tankersRoute.js b/src/routes/tankersRoute.js index c0ca27db..06c51de2 100644 --- a/src/routes/tankersRoute.js +++ b/src/routes/tankersRoute.js @@ -54,7 +54,7 @@ module.exports = function (fastify, opts, next) { }, capacity: { type: "string"}, price: {type : "string"}, - status: {type: "string"} + // status: {type: "string"} }, }, @@ -568,6 +568,46 @@ module.exports = function (fastify, opts, next) { preHandler: fastify.auth([fastify.authenticate]), handler: tankersController.status, }); + + + fastify.route({ + method: 'GET', + url: '/connection-status', + schema: { + tags: ["Supplier"], + description: "This is for Get Tank Data for status connected or not", + summary: "This is for to Get Tank Data for status connected or not", + querystring: { + type: 'object', + properties: { + customerId: { type: 'string' }, + supplierId: { type: 'string' } + }, + required: ['customerId', 'supplierId'] + }, + // response: { + // 200: { + // type: 'object', + // properties: { + // isConnected: { type: 'boolean' } + // } + // }, + // 500: { + // type: 'object', + // properties: { + // error: { type: 'string' } + // } + // } + // } + security: [ + { + basicAuth: [], + }, + ], + }, + handler: tankersController.connectionStatus + }); + next(); }