diff --git a/src/features/dashboard-codegate-status/components/codegate-status-health.tsx b/src/features/dashboard-codegate-status/components/codegate-status-health.tsx index cbf0d99e..f545cfc1 100644 --- a/src/features/dashboard-codegate-status/components/codegate-status-health.tsx +++ b/src/features/dashboard-codegate-status/components/codegate-status-health.tsx @@ -1,5 +1,5 @@ import { LoaderCircle, CheckCircle2, XCircle } from "lucide-react"; -import { HealthStatus } from "../lib/get-codegate-health"; +import { HealthStatus } from "../types"; export const CodegateStatusHealth = ({ data: data, diff --git a/src/features/dashboard-codegate-status/components/codegate-status-version.tsx b/src/features/dashboard-codegate-status/components/codegate-status-version.tsx index 65cbadfc..96a763e5 100644 --- a/src/features/dashboard-codegate-status/components/codegate-status-version.tsx +++ b/src/features/dashboard-codegate-status/components/codegate-status-version.tsx @@ -1,6 +1,6 @@ import { LoaderCircle, CheckCircle2, CircleAlert, XCircle } from "lucide-react"; -import { VersionResponse } from "../lib/get-version-status"; import { Link, Tooltip, TooltipTrigger } from "@stacklok/ui-kit"; +import { VersionResponse } from "../types"; export const CodegateStatusVersion = ({ data, diff --git a/src/features/dashboard-codegate-status/hooks/use-codegate-status.ts b/src/features/dashboard-codegate-status/hooks/use-codegate-status.ts index bf7712de..93c041ad 100644 --- a/src/features/dashboard-codegate-status/hooks/use-codegate-status.ts +++ b/src/features/dashboard-codegate-status/hooks/use-codegate-status.ts @@ -1,11 +1,28 @@ import { queryOptions, useQuery } from "@tanstack/react-query"; -import { getCodeGateHealth } from "../lib/get-codegate-health"; -import { getVersionStatus } from "../lib/get-version-status"; import { PollingInterval, POLLING_INTERVAl, } from "../components/codegate-status-polling-control"; +import { healthCheckHealthGet, v1VersionCheck } from "@/api/generated"; +import { HealthStatus, VersionResponse } from "../types"; + +type HealthResponse = { status: "healthy" | unknown } | null; + +const getCodeGateHealth = async (): Promise => { + const data = (await healthCheckHealthGet()).data; + + if ((data as HealthResponse)?.status === "healthy") + return HealthStatus.HEALTHY; + if ((data as HealthResponse)?.status !== "healthy") + return HealthStatus.UNHEALTHY; + + return null; +}; + +const getVersion = async (): Promise => { + return ((await v1VersionCheck()).data as VersionResponse) ?? null; +}; export function getQueryOptionsCodeGateStatus( pollingInterval: PollingInterval, @@ -13,11 +30,11 @@ export function getQueryOptionsCodeGateStatus( return queryOptions({ queryFn: async () => { const health = await getCodeGateHealth(); - const version = await getVersionStatus(); + const version = await getVersion(); return { health, - version, + version: version as VersionResponse | null, }; }, queryKey: ["useHealthCheck", { pollingInterval }], diff --git a/src/features/dashboard-codegate-status/lib/get-codegate-health.ts b/src/features/dashboard-codegate-status/lib/get-codegate-health.ts deleted file mode 100644 index a22f521c..00000000 --- a/src/features/dashboard-codegate-status/lib/get-codegate-health.ts +++ /dev/null @@ -1,18 +0,0 @@ -export enum HealthStatus { - HEALTHY = "Healthy", - UNHEALTHY = "Unhealthy", -} - -type HealthResponse = { status: "healthy" | unknown } | null; - -export const getCodeGateHealth = async (): Promise => { - const resp = await fetch( - new URL("/health", import.meta.env.VITE_BASE_API_URL), - ); - const data = (await resp.json()) as unknown as HealthResponse; - - if (data?.status === "healthy") return HealthStatus.HEALTHY; - if (data?.status !== "healthy") return HealthStatus.UNHEALTHY; - - return null; -}; diff --git a/src/features/dashboard-codegate-status/lib/get-version-status.ts b/src/features/dashboard-codegate-status/lib/get-version-status.ts deleted file mode 100644 index 287113f3..00000000 --- a/src/features/dashboard-codegate-status/lib/get-version-status.ts +++ /dev/null @@ -1,15 +0,0 @@ -export type VersionResponse = { - current_version: string; - latest_version: string; - is_latest: boolean | null; - error: string | null; -} | null; - -export const getVersionStatus = async (): Promise => { - const resp = await fetch( - new URL("/dashboard/version", import.meta.env.VITE_BASE_API_URL), - ); - const data = (await resp.json()) as unknown as VersionResponse; - - return data; -}; diff --git a/src/features/dashboard-codegate-status/types.ts b/src/features/dashboard-codegate-status/types.ts new file mode 100644 index 00000000..2fdb4c2b --- /dev/null +++ b/src/features/dashboard-codegate-status/types.ts @@ -0,0 +1,11 @@ +export enum HealthStatus { + HEALTHY = "Healthy", + UNHEALTHY = "Unhealthy", +} + +export type VersionResponse = { + current_version: string; + latest_version: string; + is_latest: boolean | null; + error: string | null; +} | null;