Files
helm-dashboard/frontend/src/API/scanners.ts
yuri-sakharov 3f623458b3 Fixed queries, mutations and JSON parse (#626)
* Fixed queries ond mutations

* Fixed JSON.parse in analytics
2025-11-27 11:44:50 +02:00

55 lines
1.5 KiB
TypeScript

/** DO NOT DELETE THESE FUNCTIONS - we left this until we support scan ops again */
/* eslint-disable @typescript-eslint/no-unused-vars */
import {
type UseMutationOptions,
type UseQueryOptions,
useMutation,
useQuery,
} from "@tanstack/react-query";
import { ScanResult, ScanResults, ScannersList } from "./interfaces";
import apiService from "./apiService";
// Get list of discovered scanners
function useGetDiscoveredScanners(options?: UseQueryOptions<ScannersList>) {
return useQuery<ScannersList>({
queryKey: ["scanners"],
queryFn:() => apiService.fetchWithDefaults<ScannersList>("/api/scanners"),
...(options ?? {})}
);
}
// Scan manifests using all applicable scanners
function useScanManifests(
manifest: string,
options?: UseMutationOptions<ScanResults, Error, string>
) {
const formData = new FormData();
formData.append("manifest", manifest);
return useMutation<ScanResults, Error, string>({
mutationFn:() =>
apiService.fetchWithDefaults<ScanResults>("/api/scanners/manifests", {
method: "POST",
body: formData,
}),
...(options ?? {})}
);
}
// Scan specified k8s resource in cluster
function useScanK8sResource(
kind: string,
namespace: string,
name: string,
options?: UseQueryOptions<ScanResults>
) {
return useQuery<ScanResults>({queryKey:
["scanners", "resource", kind, namespace, name],
queryFn:() =>
apiService.fetchWithDefaults<ScanResults>(
`/api/scanners/resource/${kind}?namespace=${namespace}&name=${name}`
),
...(options ?? {})}
);
}