diff --git a/src/utils/config/api-response.js b/src/utils/config/api-response.js index 97f61ea0..b7ed3ca0 100644 --- a/src/utils/config/api-response.js +++ b/src/utils/config/api-response.js @@ -111,6 +111,7 @@ export async function servicesResponse() { try { configuredServices = cleanServiceGroups(await servicesFromConfig()); + console.log({configuredServices: configuredServices[2]}) } catch (e) { console.error("Failed to load services.yaml, please check for errors"); if (e) console.error(e.toString()); diff --git a/src/utils/config/service-helpers.js b/src/utils/config/service-helpers.js index 8e2f12d5..95a5658a 100644 --- a/src/utils/config/service-helpers.js +++ b/src/utils/config/service-helpers.js @@ -434,6 +434,9 @@ export function cleanServiceGroups(groups) { namespace, podSelector, + // maintainerr + collectionId, + // mjpeg fit, stream, @@ -564,6 +567,10 @@ export function cleanServiceGroups(groups) { if (pointsLimit) cleanedService.widget.pointsLimit = pointsLimit; if (diskUnits) cleanedService.widget.diskUnits = diskUnits; } + if (type === "maintainerr") { + if (collectionId) cleanedService.widget.collectionId = collectionId; + console.log({ collectionId, cleanedService }); + } if (type === "mjpeg") { if (stream) cleanedService.widget.stream = stream; if (fit) cleanedService.widget.fit = fit; diff --git a/src/utils/proxy/handlers/credentialed.js b/src/utils/proxy/handlers/credentialed.js index de2111b1..adde9ebf 100644 --- a/src/utils/proxy/handlers/credentialed.js +++ b/src/utils/proxy/handlers/credentialed.js @@ -99,7 +99,7 @@ export default async function credentialedProxyHandler(req, res, map) { return res .status(500) .json({ error: { message: "Invalid data", url: sanitizeErrorURL(url), data: resultData } }); - } + } if (map) resultData = map(resultData); } diff --git a/src/utils/proxy/validate-widget-data.js b/src/utils/proxy/validate-widget-data.js index 343dbb85..ed29d55d 100644 --- a/src/utils/proxy/validate-widget-data.js +++ b/src/utils/proxy/validate-widget-data.js @@ -14,7 +14,6 @@ export default function validateWidgetData(widget, endpoint, data) { valid = false; } } - if (dataParsed && Object.entries(dataParsed).length) { const mappings = widgets[widget.type]?.mappings; if (mappings) { diff --git a/src/widgets/components.js b/src/widgets/components.js index 1b5c4b68..8702c0dc 100644 --- a/src/widgets/components.js +++ b/src/widgets/components.js @@ -53,6 +53,7 @@ const components = { komga: dynamic(() => import("./komga/component")), kopia: dynamic(() => import("./kopia/component")), lidarr: dynamic(() => import("./lidarr/component")), + maintainerr: dynamic(() => import("./maintainerr/component")), mastodon: dynamic(() => import("./mastodon/component")), mealie: dynamic(() => import("./mealie/component")), medusa: dynamic(() => import("./medusa/component")), diff --git a/src/widgets/maintainerr/component.jsx b/src/widgets/maintainerr/component.jsx new file mode 100644 index 00000000..363e0638 --- /dev/null +++ b/src/widgets/maintainerr/component.jsx @@ -0,0 +1,36 @@ +import { useTranslation } from "next-i18next"; + +import Container from "components/services/widget/container"; +import Block from "components/services/widget/block"; +import useWidgetAPI from "utils/proxy/use-widget-api"; + +export default function Component({ service }) { + const { t } = useTranslation(); + const { widget } = service; + const { categoryId } = widget; + + console.log({categoryId}); + + const { data: collections, error: statsError } = useWidgetAPI(widget, "collections"); + + if (statsError) { + return ; + } + + if (!collections) { + return ( + + + + + + + ); + } + + return ( + + + + ); +} diff --git a/src/widgets/maintainerr/widget.js b/src/widgets/maintainerr/widget.js new file mode 100644 index 00000000..951a5e8d --- /dev/null +++ b/src/widgets/maintainerr/widget.js @@ -0,0 +1,9 @@ +import credentialedProxyHandler from "utils/proxy/handlers/credentialed"; +import { asJson, jsonArrayFilter } from "utils/proxy/api-helpers"; + +const widget = { + api: "{url}/api/{endpoint}", + proxyHandler: credentialedProxyHandler, +}; + +export default widget; diff --git a/src/widgets/widgets.js b/src/widgets/widgets.js index d6965f50..5bc27327 100644 --- a/src/widgets/widgets.js +++ b/src/widgets/widgets.js @@ -45,6 +45,7 @@ import kavita from "./kavita/widget"; import komga from "./komga/widget"; import kopia from "./kopia/widget"; import lidarr from "./lidarr/widget"; +import maintainerr from "./maintainerr/widget"; import mastodon from "./mastodon/widget"; import mealie from "./mealie/widget"; import medusa from "./medusa/widget"; @@ -162,6 +163,7 @@ const widgets = { komga, kopia, lidarr, + maintainerr, mastodon, mealie, medusa,