From 7c926675f9c92800c7bc952bc26b54771752affe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20S=C3=A1?= Date: Mon, 6 Dec 2021 19:07:34 +0000 Subject: [PATCH] fix: show the correct status for each machine --- lib/machine-loader.js | 2 +- lib/notifier/index.js | 22 ++++++++++------------ 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/lib/machine-loader.js b/lib/machine-loader.js index 0576dbc1..d9286e1e 100644 --- a/lib/machine-loader.js +++ b/lib/machine-loader.js @@ -60,7 +60,7 @@ function addName (pings, events, config) { const statuses = [ getStatus( _.first(pings[machine.deviceId]), - _.first(checkStuckScreen(events, machine.name)) + _.first(checkStuckScreen(events, machine)) ) ] diff --git a/lib/notifier/index.js b/lib/notifier/index.js index 65f22192..a41f4268 100644 --- a/lib/notifier/index.js +++ b/lib/notifier/index.js @@ -84,12 +84,8 @@ function buildAlerts (pings, balances, events, devices) { alerts.general = _.filter(r => !r.deviceId, balances) _.forEach(device => { const deviceId = device.deviceId - const deviceName = device.name - const deviceEvents = events.filter(function (eventRow) { - return eventRow.device_id === deviceId - }) const ping = pings[deviceId] || [] - const stuckScreen = checkStuckScreen(deviceEvents, deviceName) + const stuckScreen = checkStuckScreen(events, device) alerts.devices = _.set([deviceId, 'balanceAlerts'], _.filter( ['deviceId', deviceId], @@ -97,7 +93,7 @@ function buildAlerts (pings, balances, events, devices) { ), alerts.devices) alerts.devices[deviceId].deviceAlerts = _.isEmpty(ping) ? stuckScreen : ping - alerts.deviceNames[deviceId] = deviceName + alerts.deviceNames[deviceId] = device.name }, devices) return alerts @@ -109,12 +105,13 @@ function checkPings (devices) { return _.zipObject(deviceIds)(pings) } -function checkStuckScreen (deviceEvents, machineName) { - const sortedEvents = _.sortBy( - utils.getDeviceTime, - _.map(utils.parseEventNote, deviceEvents) - ) - const lastEvent = _.last(sortedEvents) +function checkStuckScreen (deviceEvents, machine) { + const lastEvent = _.pipe( + _.filter(e => e.device_id === machine.deviceId), + _.sortBy(utils.getDeviceTime), + _.map(utils.parseEventNote), + _.last + )(deviceEvents) if (!lastEvent) return [] @@ -124,6 +121,7 @@ function checkStuckScreen (deviceEvents, machineName) { if (isIdle) return [] const age = Math.floor(lastEvent.age) + const machineName = machine.name if (age > STALE_STATE) return [{ code: STALE, state, age, machineName }] return []