Dashboard bell

Signed-off-by: Romein van Buren <romein@vburen.nl>
This commit is contained in:
2022-07-12 11:08:27 +02:00
parent e0e51d7ad6
commit 87635c790a
5 changed files with 59 additions and 20 deletions

View File

@ -4,6 +4,8 @@ const { makeId } = require('core/makeid');
const decoder = new TextDecoder('utf-8');
let uws;
let downIdsBefore = [];
let downIdsAfter = [];
const mapService = (s, beat) => ({
id: s.id,
@ -30,7 +32,7 @@ async function createDashboardSocket(server) {
const servicesUp = [];
const servicesDown = [];
const servicesUnknown = [];
console.log(heartbeats);
downIdsAfter = [];
for (let service of services) {
const beat = heartbeats.find(b => b.webservice === service.id);
@ -41,6 +43,7 @@ async function createDashboardSocket(server) {
}
else if (beat.down) {
servicesDown.push(service);
downIdsAfter.push(service.id);
}
else {
servicesUp.push(service);
@ -53,7 +56,19 @@ async function createDashboardSocket(server) {
...servicesUnknown,
].length;
let newOutage = false;
for (const id of downIdsAfter) {
if (!downIdsBefore.includes(id)) {
newOutage = true;
}
}
downIdsBefore = JSON.parse(JSON.stringify(downIdsAfter));
try {
if (newOutage) {
ws.send(JSON.stringify({ cmd: 'bell' }));
}
ws.send(JSON.stringify({
cmd: 'data',
servicesUp,