@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
JavaScript
;
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