csa-dashboard-sementara/csa-dashboard/modules/api-management/hooks.ts

39 lines
1.1 KiB
TypeScript

import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import { apiManagementService } from "./services";
import { QUERY_KEYS } from "@/config/constants";
export const useApiTokens = () => {
return useQuery({
queryKey: [QUERY_KEYS.API_KEYS],
queryFn: apiManagementService.getAllTokens,
});
};
export const useCreateApiKey = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: apiManagementService.createKey,
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: [QUERY_KEYS.API_KEYS] });
},
});
};
export const useDeleteApiKey = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: apiManagementService.deleteKey,
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: [QUERY_KEYS.API_KEYS] });
},
});
};
export const useTestSecure = () => {
return useQuery({
queryKey: [QUERY_KEYS.API_KEYS, "test"],
queryFn: apiManagementService.testSecure,
enabled: false,
});
};