feat(web): API client modules for quarantine + admin quarantine
This commit is contained in:
@@ -2,8 +2,11 @@ import { createQuery } from '@tanstack/svelte-query';
|
||||
import { api } from './client';
|
||||
import { qk } from './queries';
|
||||
import type {
|
||||
ActionResult,
|
||||
AdminQuarantineRow,
|
||||
LidarrConfig,
|
||||
LidarrQualityProfile,
|
||||
LidarrQuarantineActionRow,
|
||||
LidarrRequest,
|
||||
LidarrRequestStatus,
|
||||
LidarrRootFolder,
|
||||
@@ -103,3 +106,45 @@ export function createAdminRequestsQuery(status?: LidarrRequestStatus) {
|
||||
queryFn: () => listAdminRequests(status)
|
||||
});
|
||||
}
|
||||
|
||||
// Admin quarantine --------------------------------------------------------
|
||||
|
||||
export async function listAdminQuarantine(): Promise<AdminQuarantineRow[]> {
|
||||
return api.get<AdminQuarantineRow[]>('/api/admin/quarantine');
|
||||
}
|
||||
|
||||
export async function resolveQuarantine(trackID: string): Promise<ActionResult> {
|
||||
return api.post<ActionResult>(`/api/admin/quarantine/${trackID}/resolve`, {});
|
||||
}
|
||||
|
||||
export async function deleteQuarantineFile(trackID: string): Promise<ActionResult> {
|
||||
return api.post<ActionResult>(`/api/admin/quarantine/${trackID}/delete-file`, {});
|
||||
}
|
||||
|
||||
export async function deleteQuarantineViaLidarr(trackID: string): Promise<ActionResult> {
|
||||
return api.post<ActionResult>(`/api/admin/quarantine/${trackID}/delete-via-lidarr`, {});
|
||||
}
|
||||
|
||||
export async function listQuarantineActions(
|
||||
limit: number = 50
|
||||
): Promise<LidarrQuarantineActionRow[]> {
|
||||
return api.get<LidarrQuarantineActionRow[]>(
|
||||
`/api/admin/quarantine/actions?limit=${limit}`
|
||||
);
|
||||
}
|
||||
|
||||
export function createAdminQuarantineQuery() {
|
||||
return createQuery({
|
||||
queryKey: qk.adminQuarantine(),
|
||||
queryFn: listAdminQuarantine,
|
||||
staleTime: 30_000
|
||||
});
|
||||
}
|
||||
|
||||
export function createQuarantineActionsQuery(limit: number = 50) {
|
||||
return createQuery({
|
||||
queryKey: qk.adminQuarantineActions(limit),
|
||||
queryFn: () => listQuarantineActions(limit),
|
||||
staleTime: 60_000
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user