import { createIntegrationAsync } from "@homarr/integrations"; import type { UnifiOsSummary } from "@homarr/integrations/types"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; export const unifiOsRequestHandler = createIntegrationRequestHandler>({ async requestAsync(integration, _input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getUnifiOsSummaryAsync(); }, cacheTtlMs: 5 * 1000, // Aligné sur l'intervalle du widget : un cache plus long qu'elle rendrait le // rafraîchissement rapide inopérant, la requête relisant la même entrée. // La console ne rafraîchit ses statistiques que toutes les 30 s (mesuré), donc // interroger plus vite gagne en réactivité, pas en résolution. // Le cache cloud reste à 5 min dans unifi-sm-api.ts : ses métriques n'évoluent // que par tranches de 5 min et accusent ~30 min de retard. // Une console momentanément injoignable doit afficher la dernière valeur connue // plutôt qu'une tuile d'erreur ; le widget signale la péremption. fallbackToStaleOnError: true, staleIfErrorTtlMs: 10 * 60 * 1000, });