1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-08-02 20:35:25 +02:00

refactor(nomad): sync frontend with EE [EE-3353] (#7758)

This commit is contained in:
Chaim Lev-Ari 2022-11-13 12:29:25 +02:00 committed by GitHub
parent 78dcba614d
commit 881e99df53
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
68 changed files with 1799 additions and 17 deletions

View file

@ -0,0 +1,75 @@
import { useQuery, useQueryClient } from 'react-query';
import { useCurrentStateAndParams } from '@uirouter/react';
import * as notifications from '@/portainer/services/notifications';
import { EnvironmentId } from '@/react/portainer/environments/types';
import axios, { parseAxiosError } from '@/portainer/services/axios';
import { NomadEventsList } from '../../types';
export function useEvents() {
const queryClient = useQueryClient();
const {
params: {
endpointId: environmentID,
allocationID,
jobID,
taskName,
namespace,
},
} = useCurrentStateAndParams();
if (!environmentID) {
throw new Error('endpointId url param is required');
}
const key = [
'environments',
environmentID,
'nomad',
'events',
allocationID,
jobID,
taskName,
namespace,
];
function invalidateQuery() {
return queryClient.invalidateQueries(key);
}
const query = useQuery(
key,
() =>
getTaskEvents(environmentID, allocationID, jobID, taskName, namespace),
{
refetchOnWindowFocus: false,
onError: (err) => {
notifications.error('Failed loading events', err as Error, '');
},
}
);
return { query, invalidateQuery };
}
export async function getTaskEvents(
environmentId: EnvironmentId,
allocationId: string,
jobId: string,
taskName: string,
namespace: string
) {
try {
const ret = await axios.get<NomadEventsList>(
`/nomad/endpoints/${environmentId}/allocation/${allocationId}/events`,
{
params: { jobId, taskName, namespace },
}
);
return ret.data;
} catch (e) {
throw parseAxiosError(e as Error);
}
}