import { createSourceConnectionApi } from '../../apis';
import { matchResultAndHandleHttpError } from '@event-inc/utils';
import { CreateSourceConnectionPayload, SourcePlatforms } from '@event-inc/types';
import { identity } from 'ramda';
import { getHeaders } from '../getHeaders';
import { Client } from '../../client';

export const createSource = async <T extends SourcePlatforms>(
	client: Client,
	payload: CreateSourceConnectionPayload<T>
) => {
	const secret = client._clientInfo.secret;
	
	const result = await createSourceConnectionApi(getHeaders(secret), client._url, payload);
	const { data } = matchResultAndHandleHttpError(
		result,
		identity
	);
	return data;
};

