mirror of
https://github.com/gethomepage/homepage.git
synced 2026-01-12 20:12:09 +08:00
Setup for custom proxy
This commit is contained in:
@@ -12,8 +12,8 @@ export default function Component({ service }) {
|
|||||||
|
|
||||||
const { data: alertData, error: alertError } = useWidgetAPI(widget, "alerts");
|
const { data: alertData, error: alertError } = useWidgetAPI(widget, "alerts");
|
||||||
const { data: statusData, error: statusError } = useWidgetAPI(widget, "status");
|
const { data: statusData, error: statusError } = useWidgetAPI(widget, "status");
|
||||||
const { data: poolsData, error: poolsError } = useWidgetAPI(widget, widget?.enablePools ? "pools" : null);
|
const { data: poolsData, error: poolsError } = useWidgetAPI(widget, widget?.enablePools ? "pools" : "");
|
||||||
const { data: datasetData, error: datasetError } = useWidgetAPI(widget, widget?.enablePools ? "dataset" : null);
|
const { data: datasetData, error: datasetError } = useWidgetAPI(widget, widget?.enablePools ? "dataset" : "");
|
||||||
|
|
||||||
if (alertError || statusError || poolsError) {
|
if (alertError || statusError || poolsError) {
|
||||||
const finalError = alertError ?? statusError ?? poolsError ?? datasetError;
|
const finalError = alertError ?? statusError ?? poolsError ?? datasetError;
|
||||||
|
|||||||
@@ -1,23 +1,26 @@
|
|||||||
import { asJson, jsonArrayFilter } from "utils/proxy/api-helpers";
|
import { asJson, jsonArrayFilter } from "utils/proxy/api-helpers";
|
||||||
import credentialedProxyHandler from "utils/proxy/handlers/credentialed";
|
import truenasProxyHandler from "./proxy";
|
||||||
|
|
||||||
const widget = {
|
const widget = {
|
||||||
api: "{url}/api/v2.0/{endpoint}",
|
api: "{url}/api/v2.0/{endpoint}",
|
||||||
proxyHandler: credentialedProxyHandler,
|
proxyHandler: truenasProxyHandler,
|
||||||
|
|
||||||
mappings: {
|
mappings: {
|
||||||
alerts: {
|
alerts: {
|
||||||
endpoint: "alert/list",
|
endpoint: "alert/list",
|
||||||
|
wsMethod: "alert.list",
|
||||||
map: (data) => ({
|
map: (data) => ({
|
||||||
pending: jsonArrayFilter(data, (item) => item?.dismissed === false).length,
|
pending: jsonArrayFilter(data, (item) => item?.dismissed === false).length,
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
status: {
|
status: {
|
||||||
endpoint: "system/info",
|
endpoint: "system/info",
|
||||||
|
wsMethod: "system.info",
|
||||||
validate: ["loadavg", "uptime_seconds"],
|
validate: ["loadavg", "uptime_seconds"],
|
||||||
},
|
},
|
||||||
pools: {
|
pools: {
|
||||||
endpoint: "pool",
|
endpoint: "pool",
|
||||||
|
wsMethod: "pool.query",
|
||||||
map: (data) =>
|
map: (data) =>
|
||||||
asJson(data).map((entry) => ({
|
asJson(data).map((entry) => ({
|
||||||
id: entry.name,
|
id: entry.name,
|
||||||
@@ -27,6 +30,7 @@ const widget = {
|
|||||||
},
|
},
|
||||||
dataset: {
|
dataset: {
|
||||||
endpoint: "pool/dataset",
|
endpoint: "pool/dataset",
|
||||||
|
wsMethod: "pool.dataset.query",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user