From 92d64a16f1c0ff9dc9c35e87f31212fd0b3ee115 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon, 24 Oct 2022 14:46:22 -0700 Subject: [PATCH] Refactor proxy for brevity --- src/widgets/homebridge/component.jsx | 18 +++++++------ src/widgets/homebridge/proxy.js | 39 ++++++++++------------------ 2 files changed, 23 insertions(+), 34 deletions(-) diff --git a/src/widgets/homebridge/component.jsx b/src/widgets/homebridge/component.jsx index 402fe5669a6a..14b1aeba1cbd 100644 --- a/src/widgets/homebridge/component.jsx +++ b/src/widgets/homebridge/component.jsx @@ -9,13 +9,15 @@ export default function Component({ service }) { const { widget } = service; - const { data: homebridge, error: homebridgeError } = useWidgetAPI(widget, "info"); + const { data: homebridgeData, error: homebridgeError } = useWidgetAPI(widget, "info"); - if (homebridgeError || (homebridge && !homebridge.data)) { + console.log(homebridgeData); + + if (homebridgeError || homebridgeData?.error) { return ; } - if (!homebridge) { + if (!homebridgeData) { return ( @@ -29,21 +31,21 @@ export default function Component({ service }) { - {homebridge?.data?.childBridges.quantity > 0 && + {homebridgeData?.childBridges?.total > 0 && } diff --git a/src/widgets/homebridge/proxy.js b/src/widgets/homebridge/proxy.js index d4a6286549bd..d154cd43fea0 100644 --- a/src/widgets/homebridge/proxy.js +++ b/src/widgets/homebridge/proxy.js @@ -62,22 +62,6 @@ async function apiCall(widget, endpoint) { return { status, contentType, data: JSON.parse(data.toString()), responseHeaders }; } -function formatPluginsResponse(plugins) { - const quantity = plugins?.data.filter(p => p.updateAvailable).length; - return { - updatesAvailable: quantity > 0, - quantity, - } -} - -function formatChildBridgesResponse(childBridges) { - const quantity = childBridges?.data?.length - return { - quantity, - quantityWithOkStatus: childBridges?.data?.filter(cb => cb.status === "ok").length, - } -} - export default async function homebridgeProxyHandler(req, res) { const { group, service } = req.query; @@ -97,17 +81,20 @@ export default async function homebridgeProxyHandler(req, res) { await login(widget); } - const statusRs = await apiCall(widget, "status/homebridge"); - const versionRs = await apiCall(widget, "status/homebridge-version"); - const childBrigdeRs = await apiCall(widget, "status/homebridge/child-bridges"); - const pluginsRs = await apiCall(widget, "plugins"); + const { data: statusData } = await apiCall(widget, "status/homebridge"); + const { data: versionData } = await apiCall(widget, "status/homebridge-version"); + const { data: childBridgeData } = await apiCall(widget, "status/homebridge/child-bridges"); + const { data: pluginsData } = await apiCall(widget, "plugins"); return res.status(200).send({ - data: { - status: statusRs?.data?.status, - updateAvailable: versionRs?.data?.updateAvailable, - plugins: formatPluginsResponse(pluginsRs), - childBridges: formatChildBridgesResponse(childBrigdeRs), - } + status: statusData?.status, + updateAvailable: versionData?.updateAvailable, + plugins: { + updatesAvailable: pluginsData?.filter(p => p.updateAvailable).length, + }, + childBridges: { + running: childBridgeData?.filter(cb => cb.status === "ok").length, + total: childBridgeData?.length + } }); }