Add AbortSignal support to dashboard/blocklist APIs and hooks

This commit is contained in:
2026-04-21 17:29:05 +02:00
parent 51e340fa33
commit cf5a000bf5
7 changed files with 122 additions and 16 deletions

View File

@@ -22,8 +22,8 @@ import type { ServerStatusResponse } from "../types/server";
* `active_jails`, `total_bans`, and `total_failures`.
* @throws {ApiError} When the server returns a non-2xx status.
*/
export async function fetchServerStatus(): Promise<ServerStatusResponse> {
return get<ServerStatusResponse>(ENDPOINTS.dashboardStatus);
export async function fetchServerStatus(signal?: AbortSignal): Promise<ServerStatusResponse> {
return get<ServerStatusResponse>(ENDPOINTS.dashboardStatus, signal);
}
/**
@@ -72,6 +72,7 @@ export async function fetchBanTrend(
range: TimeRange,
origin: BanOriginFilter = "all",
source: "fail2ban" | "archive" = "fail2ban",
signal?: AbortSignal,
): Promise<BanTrendResponse> {
const params = new URLSearchParams({ range });
if (origin !== "all") {
@@ -80,7 +81,7 @@ export async function fetchBanTrend(
if (source !== "fail2ban") {
params.set("source", source);
}
return get<BanTrendResponse>(`${ENDPOINTS.dashboardBansTrend}?${params.toString()}`);
return get<BanTrendResponse>(`${ENDPOINTS.dashboardBansTrend}?${params.toString()}`, signal);
}
/**
@@ -96,6 +97,7 @@ export async function fetchBansByJail(
range: TimeRange,
origin: BanOriginFilter = "all",
source: "fail2ban" | "archive" = "fail2ban",
signal?: AbortSignal,
): Promise<BansByJailResponse> {
const params = new URLSearchParams({ range });
if (origin !== "all") {
@@ -104,5 +106,5 @@ export async function fetchBansByJail(
if (source !== "fail2ban") {
params.set("source", source);
}
return get<BansByJailResponse>(`${ENDPOINTS.dashboardBansByJail}?${params.toString()}`);
return get<BansByJailResponse>(`${ENDPOINTS.dashboardBansByJail}?${params.toString()}`, signal);
}