UNPKG

test-this-package-today

Version:

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

126 lines 5.75 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createOauthDestinationApi = exports.createOauthSourceApi = exports.createOauthConnectionApi = void 0; const tslib_1 = require("tslib"); const oauthconnection_1 = require("../oauthconnection"); const utils_1 = require("@event-inc/utils"); const ramda_1 = require("ramda"); const configs_apis_1 = require("./configs.apis"); const createOauthConnectionApi = (headers, url, payload) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { const { type, config } = payload; const { clientId, clientSecret, code, redirectUri } = config; const oauthConnection = new oauthconnection_1.OauthConnection({ OAUTH_APP_CLIENT_ID: clientId, OAUTH_APP_CLIENT_SECRET: clientSecret, type, }); const oauthDetails = oauthConnection.getOauthDetails(); const response = yield (0, utils_1.makeHttpNetworkCall)({ method: 'POST', url: oauthDetails.endpoint, headers: oauthDetails.headers, data: { grant_type: 'authorization_code', code: code, redirect_uri: redirectUri, }, }); const { data } = (0, utils_1.matchResultAndHandleHttpError)(response, ramda_1.identity); const { access_token: accessToken, refresh_token: refreshToken } = data; const sourceIntegration = yield (0, utils_1.makeHttpNetworkCall)({ method: 'POST', url: `${url}/${configs_apis_1.version1}/integrations/create`, headers, data: { integrationDefinitionId: oauthDetails.sourceIntegrationDefinitionId, name: payload.label, group: payload.group, authFormData: Object.assign({ name: payload.label }, oauthConnection.getOauthFormData({ accessToken, refreshToken })), }, }); const { data: source } = (0, utils_1.matchResultAndHandleHttpError)(sourceIntegration, ramda_1.identity); const destinationIntegration = yield (0, utils_1.makeHttpNetworkCall)({ method: 'POST', url: `${url}/${configs_apis_1.version1}/integrations/create`, headers, data: { connectionBundleId: source === null || source === void 0 ? void 0 : source.connectionBundleId, integrationDefinitionId: oauthDetails.destinationIntegrationDefinitionId, name: payload.label, group: payload.group, authFormData: Object.assign({ name: payload.label }, oauthConnection.getOauthFormData({ accessToken, refreshToken })), }, }); const { data: destination } = (0, utils_1.matchResultAndHandleHttpError)(destinationIntegration, ramda_1.identity); return { source, destination }; }); exports.createOauthConnectionApi = createOauthConnectionApi; const createOauthSourceApi = (headers, url, payload) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { const { type, config } = payload; const { clientId, clientSecret, code, redirectUri } = config; const oauthConnection = new oauthconnection_1.OauthConnection({ OAUTH_APP_CLIENT_ID: clientId, OAUTH_APP_CLIENT_SECRET: clientSecret, type, }); const oauthDetails = oauthConnection.getOauthDetails(); const response = yield (0, utils_1.makeHttpNetworkCall)({ method: 'POST', url: oauthDetails.endpoint, headers: oauthDetails.headers, data: { grant_type: 'authorization_code', code: code, redirect_uri: redirectUri, }, }); const { data } = (0, utils_1.matchResultAndHandleHttpError)(response, ramda_1.identity); const { access_token: accessToken, refresh_token: refreshToken } = data; return (0, utils_1.makeHttpNetworkCall)({ method: 'POST', url: `${url}/${configs_apis_1.version1}/integrations/create`, headers, data: { integrationDefinitionId: oauthDetails.sourceIntegrationDefinitionId, name: payload.label, group: payload.group, authFormData: Object.assign({ name: payload.label }, oauthConnection.getOauthFormData({ accessToken, refreshToken })), }, }); }); exports.createOauthSourceApi = createOauthSourceApi; const createOauthDestinationApi = (headers, url, payload) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { const { type, config } = payload; const { clientId, clientSecret, code, redirectUri } = config; const oauthConnection = new oauthconnection_1.OauthConnection({ OAUTH_APP_CLIENT_ID: clientId, OAUTH_APP_CLIENT_SECRET: clientSecret, type, }); const oauthDetails = oauthConnection.getOauthDetails(); const response = yield (0, utils_1.makeHttpNetworkCall)({ method: 'POST', url: oauthDetails.endpoint, headers: oauthDetails.headers, data: { grant_type: 'authorization_code', code: code, redirect_uri: redirectUri, }, }); const { data } = (0, utils_1.matchResultAndHandleHttpError)(response, ramda_1.identity); const { access_token: accessToken, refresh_token: refreshToken } = data; return (0, utils_1.makeHttpNetworkCall)({ method: 'POST', url: `${url}/${configs_apis_1.version1}/integrations/create`, headers, data: { integrationDefinitionId: oauthDetails.destinationIntegrationDefinitionId, name: payload.label, group: payload.group, authFormData: Object.assign({ name: payload.label }, oauthConnection.getOauthFormData({ accessToken, refreshToken })), }, }); }); exports.createOauthDestinationApi = createOauthDestinationApi; //# sourceMappingURL=connection.api.js.map