From cee726aa9a27a6494c64dc9f026aa19c6a99dfc8 Mon Sep 17 00:00:00 2001 From: varun Date: Fri, 19 Apr 2024 03:32:40 -0400 Subject: [PATCH] modified connections --- src/controllers/createConnectionController.js | 90 ++++++++++++++++++- src/models/tanks.js | 8 +- src/routes/createConnectionsRoute.js | 12 +++ 3 files changed, 104 insertions(+), 6 deletions(-) diff --git a/src/controllers/createConnectionController.js b/src/controllers/createConnectionController.js index 0eecfa24..24458b18 100644 --- a/src/controllers/createConnectionController.js +++ b/src/controllers/createConnectionController.js @@ -451,7 +451,6 @@ const fastify = require("fastify")({ // } // }; - exports.createConnections = async (req, body) => { try { const customerId = req.params.customerId; @@ -468,6 +467,8 @@ exports.createConnections = async (req, body) => { input_type: connection.input_type, motor_status: connection.motor_status || "0", inputismotor: connection.hasOwnProperty("inputismotor") ? connection.inputismotor : false, + motor_id: connection.motor_id || null, + motor_stop_status: connection.motor_stop_status || "1" }; }); } @@ -478,6 +479,8 @@ exports.createConnections = async (req, body) => { outputConnections: connection.outputConnections, output_type: connection.output_type, outputismotor: connection.hasOwnProperty("outputismotor") ? connection.outputismotor : false, + motor_id: connection.motor_id || null, + motor_stop_status: connection.motor_stop_status || "1" }; }); } @@ -504,9 +507,9 @@ exports.createConnections = async (req, body) => { 'connections.inputConnections': { $each: [{ inputConnections: tankname, input_type: 'sump', inputismotor: data.outputismotor || false }], }, - // 'connections.outputConnections': { - // $each: [{ outputConnections: tankname, output_type: 'overhead'}], - // }, + 'connections.outputConnections': { + $each: [{ outputConnections: tankname, output_type: 'overhead', motor_id: data.motor_id || null, motor_stop_status: "1"}], + }, }, }, { new: true } @@ -525,6 +528,85 @@ exports.createConnections = async (req, body) => { +exports.createConnections = async (req, body) => { + try { + const customerId = req.params.customerId; + const tankname = req.body.tankname; + + const tankInfo = await Tank.findOne({ customerId: customerId.toString(), tankName: tankname }); + const usertobeInserted = req.body; + tankInfo.connections.source = tankInfo.tankName; + + if (usertobeInserted.inputConnections) { + tankInfo.connections.inputConnections = usertobeInserted.inputConnections.map(connection => { + return { + inputConnections: connection.inputConnections, + input_type: connection.input_type, + motor_status: connection.motor_status || "1", + inputismotor: connection.hasOwnProperty("inputismotor") ? connection.inputismotor : false, + motor_id: connection.motor_id || null, + motor_stop_status: connection.motor_stop_status || "1" + }; + }); + } + + if (usertobeInserted.outputConnections) { + tankInfo.connections.outputConnections = usertobeInserted.outputConnections.map(connection => { + return { + outputConnections: connection.outputConnections, + output_type: connection.output_type, + outputismotor: connection.hasOwnProperty("outputismotor") ? connection.outputismotor : false, + motor_id: connection.motor_id || null, + motor_status: connection.motor_status || "1", + motor_stop_status: connection.motor_stop_status || "1" + }; + }); + } + + const tank_connections = await tankInfo.save(); + + const connection_data_check = tank_connections.connections.inputConnections; + const sump_names = connection_data_check.map(d => d.inputConnections); + console.log(sump_names); + + const connection_data = usertobeInserted.outputConnections; + console.log(connection_data, "connection_data"); + for (const data of connection_data) { + if (data['output_type'] === "overhead") { + const tankName = data['outputConnections']; + + if (sump_names.includes(tankname)) { + console.log(`${tankname} exists in ${sump_names}`); + } else { + const tankConnections = await Tank.findOneAndUpdate( + { customerId: customerId.toString(), tankName: tankName }, + { + $addToSet: { + 'connections.inputConnections': { + $each: [{ inputConnections: tankname, input_type: 'sump', inputismotor: data.outputismotor || false }], + }, + 'connections.outputConnections': { + $each: [{ outputConnections: tankname, output_type: 'overhead', motor_id: data.motor_id || null, motor_stop_status: "1"}], + }, + }, + }, + { new: true } + ); + console.log("tankConnections", tankConnections.connections.inputConnections); + console.log("tankConnections", tankConnections.connections.outputConnections); + } + } + } + + return tank_connections; + } catch (err) { + throw boom.boomify(err); + } +}; + + + + // exports.createConnections = async (req, body) => { // try { // const customerId = req.params.customerId; diff --git a/src/models/tanks.js b/src/models/tanks.js index 61621605..915800d6 100644 --- a/src/models/tanks.js +++ b/src/models/tanks.js @@ -60,7 +60,9 @@ const tanksSchema = new mongoose.Schema({ inputConnections: { type: String }, input_type: { type: String }, inputismotor: { type: Boolean, }, - motor_status: { type: String, default: "0" } + motor_id:{ type: String ,default: null}, + motor_status: { type: String, default: "0" }, + motor_stop_status: { type: String, default: "1" }, } ], outputConnections: [ @@ -68,7 +70,9 @@ const tanksSchema = new mongoose.Schema({ outputConnections: { type: String }, output_type: { type: String }, outputismotor: { type: Boolean, }, - motor_status: { type: String, default: "0" } + motor_id:{ type: String ,default: null}, + motor_status: { type: String, default: "0" }, + motor_stop_status: { type: String, default: "1" }, } ] } diff --git a/src/routes/createConnectionsRoute.js b/src/routes/createConnectionsRoute.js index 1c9efd91..caa18b7e 100644 --- a/src/routes/createConnectionsRoute.js +++ b/src/routes/createConnectionsRoute.js @@ -124,6 +124,9 @@ module.exports = function (fastify, opts, next) { inputConnections: { type: "string", default: null }, input_type: { type: "string", default: null }, inputismotor: { type: "boolean"}, + motor_id:{ type: "string" ,default: null}, + motor_status: { type: "string", default: "1" }, + motor_stop_status: { type: "string", default: "1" }, }, }, }, @@ -136,6 +139,9 @@ module.exports = function (fastify, opts, next) { outputConnections: { type: "string", default: null }, output_type: { type: "string", default: null }, outputismotor: { type: "boolean" }, + motor_id:{ type: "string" ,default: null}, + motor_status: { type: "string", default: "1" }, + motor_stop_status: { type: "string", default: "1" }, }, }, }, @@ -183,6 +189,9 @@ module.exports = function (fastify, opts, next) { inputConnections: { type: "string", default: null }, input_type: { type: "string", default: null }, inputismotor: { type: "boolean"}, + motor_id:{ type: "string" ,default: null}, + motor_status: { type: "string", default: "1" }, + motor_stop_status: { type: "string", default: "1" }, }, }, }, @@ -195,6 +204,9 @@ module.exports = function (fastify, opts, next) { outputConnections: { type: "string", default: null }, output_type: { type: "string", default: null }, outputismotor: { type: "boolean" }, + motor_id:{ type: "string" ,default: null}, + motor_status: { type: "string", default: "1" }, + motor_stop_status: { type: "string", default: "1" }, }, }, },