8cdc2f49d8
Co-authored-by: Nicholas Loomans <nicholas.loomans@portainer.io>
44 lines
1.1 KiB
TypeScript
44 lines
1.1 KiB
TypeScript
import { useMutation } from '@tanstack/react-query';
|
|
|
|
import axios, { parseAxiosError } from '@/portainer/services/axios/axios';
|
|
import { queryClient, withError } from '@/react-tools/react-query';
|
|
import { EnvironmentId } from '@/react/portainer/environments/types';
|
|
|
|
import { queryKeys } from './query-keys';
|
|
|
|
export function useDeletePodMutation(
|
|
environmentId: EnvironmentId,
|
|
namespace: string,
|
|
appName: string
|
|
) {
|
|
return useMutation(
|
|
({ podName }: { podName: string }) =>
|
|
deletePod(environmentId, namespace, podName),
|
|
{
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries(
|
|
queryKeys.applicationPods(environmentId, namespace, appName)
|
|
);
|
|
},
|
|
...withError('Unable to delete pod'),
|
|
}
|
|
);
|
|
}
|
|
|
|
async function deletePod(
|
|
environmentId: EnvironmentId,
|
|
namespace: string,
|
|
podName: string
|
|
) {
|
|
try {
|
|
await axios.delete(
|
|
`/kubernetes/${environmentId}/namespaces/${namespace}/pods/${podName}`
|
|
);
|
|
} catch (error) {
|
|
throw parseAxiosError(
|
|
error as Error,
|
|
`Failed to delete pod ${podName} in namespace ${namespace}`
|
|
);
|
|
}
|
|
}
|