| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import type { IntegrationsData } from '@/data/integrations/integrations-query'
- import type { IntegrationName } from '@/data/integrations/integrations.types'
- import type { Organization } from '@/types'
- export function getHasInstalledObject({
- integrationName,
- integrationData,
- organizationsData,
- installationId,
- }: {
- integrationName: IntegrationName
- integrationData: IntegrationsData
- organizationsData: Organization[]
- installationId?: string | number
- }): { [orgSlug: string]: boolean } {
- if (integrationName === 'Vercel') {
- return Object.fromEntries(
- organizationsData
- .map((org) => [
- org.slug,
- Boolean(
- integrationData.find(
- (integration) =>
- integration.organization.slug === org.slug &&
- integration.integration.name === 'Vercel'
- )
- ),
- ])
- .filter(([, v]) => Boolean(v))
- )
- }
- if (integrationName === 'GitHub') {
- return Object.fromEntries(
- organizationsData
- .map((org) => [
- org.slug,
- Boolean(
- integrationData.find(
- (integration) =>
- integration.organization.slug === org.slug &&
- integration.integration.name === 'GitHub' &&
- integration.metadata !== undefined &&
- 'installation_id' in (integration.metadata as any) &&
- String((integration.metadata as any).installation_id) === String(installationId)
- )
- ),
- ])
- .filter(([, v]) => Boolean(v))
- )
- }
- return {}
- }
|