UNPKG

@event-inc/connections

Version:

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

65 lines 3.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createEventLinkTokenApi = exports.createLinkTokenApi = void 0; const tslib_1 = require("tslib"); const utils_1 = require("@event-inc/utils"); const ramda_1 = require("ramda"); const jsonwebtoken_1 = tslib_1.__importDefault(require("jsonwebtoken")); const createLinkTokenApi = (headers, url, payload) => { return (0, utils_1.makeHttpNetworkCall)({ method: 'POST', url: `${url}/v1/links/create`, headers, data: payload, }); }; exports.createLinkTokenApi = createLinkTokenApi; const createEventLinkTokenApi = (headers, url, payload, secret) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { var _a; const settings = yield (0, utils_1.makeHttpNetworkCall)({ method: 'POST', url: `${url}/v1/settings/get`, headers, }); const { data } = (0, utils_1.matchResultAndHandleHttpError)(settings, ramda_1.identity); const link = yield (0, utils_1.makeHttpNetworkCall)({ method: 'POST', url: `${url}/v1/event-links/create`, headers, data: payload, }); const { data: linkData } = (0, utils_1.matchResultAndHandleHttpError)(link, ramda_1.identity); const connectionDefinitionUrl = url.includes('localhost') ? 'http://localhost:3005/v1/connection-definitions' : url.includes('development') ? 'https://development-api.event.dev/v1/connection-definitions' : 'https://api.event.dev/v1/connection-definitions'; const connectionDefinitionHeaders = { 'x-event-inc-secret': secret, }; const connectionDefinitions = yield (0, utils_1.makeHttpNetworkCall)({ method: 'GET', url: `${connectionDefinitionUrl}?limit=100&skip=0&active=false`, headers: connectionDefinitionHeaders, }); const { data: inActiveConnectionDefinitionsData } = (0, utils_1.matchResultAndHandleHttpError)(connectionDefinitions, ramda_1.identity); const connectedPlatforms = (_a = data === null || data === void 0 ? void 0 : data.connectedPlatforms) === null || _a === void 0 ? void 0 : _a.filter((platform) => { var _a; return !((_a = inActiveConnectionDefinitionsData === null || inActiveConnectionDefinitionsData === void 0 ? void 0 : inActiveConnectionDefinitionsData.rows) === null || _a === void 0 ? void 0 : _a.find((definition) => (definition === null || definition === void 0 ? void 0 : definition._id) === (platform === null || platform === void 0 ? void 0 : platform.connectionDefinitionId))); }); const activeConnectedPlatforms = connectedPlatforms === null || connectedPlatforms === void 0 ? void 0 : connectedPlatforms.filter((platform) => { return platform === null || platform === void 0 ? void 0 : platform.active; }); const tokenPayload = { linkSettings: { connectedPlatforms: activeConnectedPlatforms !== null && activeConnectedPlatforms !== void 0 ? activeConnectedPlatforms : [], eventIncToken: linkData === null || linkData === void 0 ? void 0 : linkData.token, }, group: linkData === null || linkData === void 0 ? void 0 : linkData.group, label: linkData === null || linkData === void 0 ? void 0 : linkData.label, }; const token = jsonwebtoken_1.default.sign(tokenPayload, secret); return token; }); exports.createEventLinkTokenApi = createEventLinkTokenApi; //# sourceMappingURL=link.api.js.map