UNPKG

@buildable/connections

Version:

Buildable is a fully managed event bus lets you send and receive data across mission-critical cloud apps, databases and warehouses.

77 lines (70 loc) 1.5 kB
import { IntegrationRecord, DestinationPlatforms, CreateDestinationConnectionPayload, DeleteDestinationPayload, ListDestinationsPayload, Integrations, } from '@buildable/types'; import { makeHttpNetworkCall } from '@buildable/utils'; import { getIntegrationDefinitionId } from '@buildable/utils'; export const createDestinationConnectionApi = <T extends DestinationPlatforms>( headers: Record<string, string>, url: string, payload: CreateDestinationConnectionPayload<T> ) => { const integrationDefinitionId = getIntegrationDefinitionId( payload.type, 'destination' ); const authData = { name: payload.label, ...payload.config, }; const finalPayload = { integrationDefinitionId, authFormData: authData, type: payload.type, group: payload.group, name: payload.label, key: payload.key, }; return makeHttpNetworkCall<IntegrationRecord>({ method: 'POST', url, data: finalPayload, headers, }); }; export const deleteDestinationConnectionApi = ( headers: Record<string, string>, url: string, payload: DeleteDestinationPayload ) => { return makeHttpNetworkCall({ method: 'POST', url, data: payload, headers, }); }; export const listDestinationsApi = ( headers: Record<string, string>, url: string, payload: ListDestinationsPayload ) => { return makeHttpNetworkCall<Integrations>({ method: 'POST', url, data: { ...payload, query: { ...payload?.query, _id: { $regex: 'conn_dst', }, }, }, headers, }); };