2024-06-10 18:54:31 +00:00
|
|
|
import { EventMessage } from 'docker-types/generated/1.41';
|
2024-08-28 19:41:15 +00:00
|
|
|
import { useQuery } from '@tanstack/react-query';
|
2024-06-10 18:54:31 +00:00
|
|
|
|
|
|
|
import axios, {
|
|
|
|
jsonObjectsToArrayHandler,
|
|
|
|
parseAxiosError,
|
|
|
|
} from '@/portainer/services/axios';
|
|
|
|
import { EnvironmentId } from '@/react/portainer/environments/types';
|
|
|
|
|
|
|
|
import { buildDockerProxyUrl } from './buildDockerProxyUrl';
|
2024-08-28 19:41:15 +00:00
|
|
|
import { queryKeys } from './query-keys';
|
|
|
|
|
|
|
|
type Params = { since?: number; until?: number };
|
|
|
|
|
|
|
|
export function useEvents(
|
|
|
|
environmentId: EnvironmentId,
|
|
|
|
{ params }: { params?: Params } = {}
|
|
|
|
) {
|
|
|
|
return useQuery({
|
|
|
|
queryKey: [...queryKeys.events(environmentId, params)],
|
|
|
|
queryFn: () => getEvents(environmentId, params),
|
|
|
|
});
|
|
|
|
}
|
2024-06-10 18:54:31 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Raw docker API proxy
|
|
|
|
*/
|
|
|
|
export async function getEvents(
|
|
|
|
environmentId: EnvironmentId,
|
2024-08-28 19:41:15 +00:00
|
|
|
{ since, until }: Params = {}
|
2024-06-10 18:54:31 +00:00
|
|
|
) {
|
|
|
|
try {
|
|
|
|
const { data } = await axios.get<EventMessage[]>(
|
|
|
|
buildDockerProxyUrl(environmentId, 'events'),
|
|
|
|
{ params: { since, until }, transformResponse: jsonObjectsToArrayHandler }
|
|
|
|
);
|
|
|
|
return data;
|
|
|
|
} catch (err) {
|
|
|
|
throw parseAxiosError(err, 'Unable to retrieve engine events');
|
|
|
|
}
|
|
|
|
}
|