useMetricAnomalies.tsx 751 B

123456789101112131415161718192021222324252627282930
  1. import {
  2. type ApiQueryKey,
  3. useApiQuery,
  4. type UseApiQueryOptions,
  5. } from 'sentry/utils/queryClient';
  6. import type {Anomaly} from 'sentry/views/alerts/types';
  7. interface MetricAnomaliesParams {
  8. orgSlug: string;
  9. ruleId: string;
  10. query?: {
  11. end?: string;
  12. start?: string;
  13. };
  14. }
  15. export function makeMetricAnomaliesQueryKey(params: MetricAnomaliesParams): ApiQueryKey {
  16. const {orgSlug, ruleId, query} = params;
  17. return [`/organizations/${orgSlug}/alert-rules/${ruleId}/anomalies/`, {query}];
  18. }
  19. export function useMetricAnomalies(
  20. params: MetricAnomaliesParams,
  21. options: Partial<UseApiQueryOptions<Anomaly[]>> = {}
  22. ) {
  23. return useApiQuery<Anomaly[]>(makeMetricAnomaliesQueryKey(params), {
  24. staleTime: 0,
  25. ...options,
  26. });
  27. }