diff --git a/src/controllers/installationController.js b/src/controllers/installationController.js index 77b8d0f2..25607b49 100644 --- a/src/controllers/installationController.js +++ b/src/controllers/installationController.js @@ -991,6 +991,7 @@ exports.mastrerList = async (req, reply) => { const moment = require('moment'); // For time calculations + exports.getMasterSlaveSummary = async (req, reply) => { try { const { customerId } = req.params; @@ -1023,6 +1024,20 @@ exports.getMasterSlaveSummary = async (req, reply) => { const diff = now.diff(lastSeen, 'minutes'); if (diff <= 10) { status = "connected"; + + const dateObj = new Date(latestData.date); + const date = dateObj.toISOString().split("T")[0]; + const time = dateObj.toTimeString().split(" ")[0]; + + if (device.type === 'master') { + device.connected_gsm_date = date; + device.connected_gsm_time = time; + } + + if (device.type === 'slave') { + device.connected_lora_date = date; + device.connected_lora_time = time; + } } } @@ -1031,22 +1046,35 @@ exports.getMasterSlaveSummary = async (req, reply) => { { $set: { connected_status: status } } ); - device.connected_status = status; // Also update in-memory object - console.log(" device.connected_status", device.connected_status) + device.connected_status = status; }); await Promise.all(updateStatusPromises); - // Map masters to their connected slaves based on `connected_to` match + // Map masters to their connected slaves const enrichedMasters = masters.map(master => { const masterConnectionId = master.connected_to; - const connectedSlaves = slaves.filter(slave => - slave.connected_to === masterConnectionId - ); + // Remove lora fields for master + const masterObj = { + ...master.toObject(), + connected_lora_date: undefined, + connected_lora_time: undefined + }; + + const connectedSlaves = slaves + .filter(slave => slave.connected_to === masterConnectionId) + .map(slave => { + const slaveObj = { + ...slave.toObject(), + connected_gsm_date: undefined, + connected_gsm_time: undefined + }; + return slaveObj; + }); return { - ...master.toObject(), + ...masterObj, connected_slave_count: connectedSlaves.length, connected_slaves: connectedSlaves }; @@ -1070,6 +1098,7 @@ exports.getMasterSlaveSummary = async (req, reply) => { }; + // exports.getIotDataByCustomer = async (req, reply) => { // try { // const { customerId } = req.params;