Files
supabase/apps/studio/data/integrations/github-connections-query.ts
Joshen Lim 4327d58df5 Hybrid RLS Assistant (#21806)
* Midway checking on hybrid rls assistant

* Demo

* Midway

* Polish + hook up everything for policy creation

* Temp fix for open in sql editor

* Resolve conflicts

* Support updating policies with new hybrid ui

* Fix generateQuery for altering policies

* Update to support feature preview

* Fix spelling lint

* Addressing small bugs

* Fix

* Clean upo

* Add new MultiSelectV2 in ui-patterns, use in RLS editor

* More clean uo

* Fix RadioGroupLargeItem label cursor state when disabled

* Lint lowercase sql
2024-03-25 16:02:50 +07:00

47 lines
1.4 KiB
TypeScript

import { useQuery, UseQueryOptions } from '@tanstack/react-query'
import { get } from 'data/fetchers'
import type { ResponseError } from 'types'
import { integrationKeys } from './keys'
export type GitHubConnectionsVariables = {
organizationId?: number
}
export async function getGitHubConnections(
{ organizationId }: GitHubConnectionsVariables,
signal?: AbortSignal
) {
if (!organizationId) throw new Error('organizationId is required')
const { data, error } = await get('/platform/integrations/github/connections', {
params: {
query: {
organization_id: organizationId,
},
},
signal,
})
if (error) throw new Error((error as ResponseError).message)
return data.connections
}
export type GitHubConnectionsData = Awaited<ReturnType<typeof getGitHubConnections>>
export type GitHubConnectionsError = ResponseError
export type GitHubConnection = GitHubConnectionsData[0]
export const useGitHubConnectionsQuery = <TData = GitHubConnectionsData>(
{ organizationId }: GitHubConnectionsVariables,
{
enabled = true,
...options
}: UseQueryOptions<GitHubConnectionsData, GitHubConnectionsError, TData> = {}
) => {
return useQuery<GitHubConnectionsData, GitHubConnectionsError, TData>(
integrationKeys.githubConnectionsList(organizationId),
({ signal }) => getGitHubConnections({ organizationId }, signal),
{ enabled: enabled && typeof organizationId !== 'undefined', ...options }
)
}