|
|
|
@ -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;
|
|
|
|
|