master^2
Bhaskar 6 months ago
parent 7d52f1ab91
commit 24295e24a8

@ -1018,21 +1018,22 @@ exports.getMasterSlaveSummary = async (req, reply) => {
// Update connection status and timestamps // Update connection status and timestamps
const updateStatusPromises = allDevices.map(async device => { const updateStatusPromises = allDevices.map(async device => {
let checkHardwareId = device.hardwareId?.trim(); let checkHardwareId;
if (!checkHardwareId) return;
// For slave, check connection via master's hardwareId (i.e., connected_to) if (device.type === 'master') {
if (device.type === 'slave') { checkHardwareId = device.hardwareId?.trim();
checkHardwareId = device.connected_to?.trim(); } else if (device.type === 'slave') {
if (!checkHardwareId) return; checkHardwareId = device.hardwareId?.trim(); // Use slave's own hardwareId
} }
if (!checkHardwareId) return;
const latestData = await IotData.findOne({ hardwareId: checkHardwareId }) const latestData = await IotData.findOne({ hardwareId: checkHardwareId })
.sort({ date: -1 }) .sort({ date: -1 })
.lean(); .lean();
let status = "disconnected"; let status = "disconnected";
let updateFields = {}; const updateFields = {};
if (latestData?.date) { if (latestData?.date) {
const now = moment(); const now = moment();
@ -1067,6 +1068,8 @@ exports.getMasterSlaveSummary = async (req, reply) => {
device.connected_status = status; device.connected_status = status;
}); });
await Promise.all(updateStatusPromises); await Promise.all(updateStatusPromises);
// Build enriched masters and exclude irrelevant fields // Build enriched masters and exclude irrelevant fields

Loading…
Cancel
Save