feat(api): expose unifiSiteManager overview query

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
zacharyandClaude Opus 5 committed 2026-09-12 15:44:11 +02:00
1 parent ac51887601
commit f7bdd20f30
6 files changed
+67

No files matched your search

+1
View File
@@ -32,6 +32,7 @@ export const widgetRouter = createTRPCRouter({
releases: lazy(() => import("./releases").then((mod) => mod.releasesRouter)),
networkController: lazy(() => import("./network-controller").then((mod) => mod.networkControllerRouter)),
unifiOs: lazy(() => import("./unifi-os").then((mod) => mod.unifiOsRouter)),
unifiSiteManager: lazy(() => import("./unifi-site-manager").then((mod) => mod.unifiSiteManagerRouter)),
firewall: lazy(() => import("./firewall").then((mod) => mod.firewallRouter)),
notifications: lazy(() => import("./notifications").then((mod) => mod.notificationsRouter)),
timetable: lazy(() => import("./timetable").then((mod) => mod.timetableRouter)),
@@ -0,0 +1,22 @@
import { unifiSiteManagerRequestHandler } from "@homarr/request-handler/unifi-site-manager";
import { createManyIntegrationMiddleware } from "../../middlewares/integration";
import { settleIntegrationQueries } from "../../settle-integrations";
import { createTRPCRouter, publicProcedure } from "../../trpc";
export const unifiSiteManagerRouter = createTRPCRouter({
overview: publicProcedure
.concat(createManyIntegrationMiddleware("query", "unifiSiteManager"))
.query(async ({ ctx }) => {
return await settleIntegrationQueries(ctx.integrations, async (integration) => {
const innerHandler = unifiSiteManagerRequestHandler.handler(integration, {});
const { data, timestamp } = await innerHandler.getDataAsync();
return {
integration: { id: integration.id, name: integration.name, kind: integration.kind },
overview: data,
updatedAt: timestamp,
};
});
}),
});