From b94f8e694bf01f5dba9ce2c01f589463a3dfbc69 Mon Sep 17 00:00:00 2001 From: Toby Vincent Date: Wed, 9 Oct 2024 18:23:58 -0500 Subject: feat!: rewrite to use traits and streams --- assets/index.js | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) (limited to 'assets') diff --git a/assets/index.js b/assets/index.js index bd0f308..8813539 100644 --- a/assets/index.js +++ b/assets/index.js @@ -1,7 +1,7 @@ const serviceMap = new Map(); async function getServices() { - const url = "api/services"; + const url = "api/v1/status"; try { const response = await fetch(url); if (!response.ok) { @@ -27,8 +27,8 @@ function updateStatus() { } } -function updateService(name, node, status) { - switch (status.status) { +function updateService(name, node, data) { + switch (data.status) { case "ok": node.textContent = "Ok"; node.setAttribute("class", "ok"); @@ -36,7 +36,7 @@ function updateService(name, node, status) { break; case "error": node.textContent = "Error"; - node.title = status.output; + node.title = data.output; node.setAttribute("class", "error"); serviceMap.set(name, false); break; @@ -46,9 +46,9 @@ function updateService(name, node, status) { } getServices().then((services) => { - const evtSource = new EventSource("sse"); + const evtSource = new EventSource("/api/v1/sse"); evtSource.onmessage = (event) => { - console.log(event) + console.log(event.data); }; for (const [service, status] of Object.entries(services)) { @@ -59,19 +59,10 @@ getServices().then((services) => { const node = row.insertCell(); updateService(service, node, status); - const evtSource = new EventSource(`sse/${service}`); - - evtSource.addEventListener("ok", (event) => { - node.textContent = "Ok"; - node.setAttribute("class", "ok"); - serviceMap.set(name, true); - }); - - evtSource.addEventListener("error", (event) => { - node.textContent = "Error"; - node.title = event.data; - node.setAttribute("class", "error"); - serviceMap.set(name, false); + evtSource.addEventListener(service, (event) => { + data = JSON.parse(event.data); + updateService(service, node, data); + console.log(`service: ${service}, event: ${event}`); }); } }); -- cgit v1.2.3-70-g09d2