Files
portainer/app/react/docker/proxy/queries/useEvents.ts
T
2026-03-18 16:01:17 +13:00

40 lines
1.1 KiB
TypeScript

import { EventMessage } from 'docker-types';
import { useQuery } from '@tanstack/react-query';
import axios, { parseAxiosError } from '@/portainer/services/axios/axios';
import { EnvironmentId } from '@/react/portainer/environments/types';
import { jsonObjectsToArrayHandler } from '@/portainer/helpers/json';
import { buildDockerProxyUrl } from './buildDockerProxyUrl';
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),
});
}
/**
* Raw docker API proxy
*/
export async function getEvents(
environmentId: EnvironmentId,
{ since, until }: Params = {}
) {
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');
}
}