@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
text/typescript
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,
});
};