import { useQuery } from '@tanstack/react-query' import { Integration } from './integrations.types' import { integrationKeys } from './keys' import { get, handleError } from '@/data/fetchers' import type { ResponseError, UseCustomQueryOptions } from '@/types' type IntegrationsVariables = { orgSlug?: string } export async function getIntegrations({ orgSlug }: IntegrationsVariables) { if (!orgSlug) throw new Error('orgSlug is required') const { data, error } = await get('/platform/integrations/{slug}', { params: { path: { slug: orgSlug } }, }) if (error) handleError(error) return data as unknown as Integration[] } export type IntegrationsData = Awaited> export type ProjectIntegrationConnectionsData = Awaited> export type IntegrationsError = ResponseError export const useOrgIntegrationsQuery = ( { orgSlug }: IntegrationsVariables, { enabled = true, ...options }: UseCustomQueryOptions = {} ) => useQuery({ queryKey: integrationKeys.integrationsListWithOrg(orgSlug), queryFn: () => getIntegrations({ orgSlug }), enabled: enabled && typeof orgSlug !== 'undefined', staleTime: 30 * 60 * 1000, ...options, })