feat: add backup monitoring TanStack Query hooks
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
||||
import {
|
||||
acknowledgeBackupAlert,
|
||||
fetchBackupAlerts,
|
||||
fetchBackupDashboard,
|
||||
fetchBackupJob,
|
||||
fetchBackupJobs,
|
||||
fetchBackupRuns,
|
||||
} from "../api/backups";
|
||||
|
||||
export function useBackupJobs() {
|
||||
return useQuery({
|
||||
queryKey: ["backups", "jobs"],
|
||||
queryFn: fetchBackupJobs,
|
||||
refetchInterval: 30_000,
|
||||
});
|
||||
}
|
||||
|
||||
export function useBackupJob(jobId: string) {
|
||||
return useQuery({
|
||||
queryKey: ["backups", "jobs", jobId],
|
||||
queryFn: () => fetchBackupJob(jobId),
|
||||
enabled: !!jobId,
|
||||
});
|
||||
}
|
||||
|
||||
export function useBackupRuns(jobId?: string, status?: string) {
|
||||
return useQuery({
|
||||
queryKey: ["backups", "runs", jobId, status],
|
||||
queryFn: () => fetchBackupRuns(jobId, status),
|
||||
refetchInterval: 15_000,
|
||||
});
|
||||
}
|
||||
|
||||
export function useBackupAlerts(jobId?: string, acknowledged?: boolean, severity?: string) {
|
||||
return useQuery({
|
||||
queryKey: ["backups", "alerts", jobId, acknowledged, severity],
|
||||
queryFn: () => fetchBackupAlerts(jobId, acknowledged, severity),
|
||||
refetchInterval: 30_000,
|
||||
});
|
||||
}
|
||||
|
||||
export function useAcknowledgeAlert() {
|
||||
const queryClient = useQueryClient();
|
||||
return useMutation({
|
||||
mutationFn: acknowledgeBackupAlert,
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({ queryKey: ["backups", "alerts"] });
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export function useBackupDashboard() {
|
||||
return useQuery({
|
||||
queryKey: ["dashboard", "backups"],
|
||||
queryFn: fetchBackupDashboard,
|
||||
refetchInterval: 30_000,
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user