UNPKG

n8n-nodes-base

Version:

Base nodes of n8n

84 lines 2.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.orbitApiRequest = orbitApiRequest; exports.resolveIdentities = resolveIdentities; exports.resolveMember = resolveMember; exports.orbitApiRequestAllItems = orbitApiRequestAllItems; const n8n_workflow_1 = require("n8n-workflow"); async function orbitApiRequest(method, resource, body = {}, qs = {}, uri, option = {}) { try { const credentials = await this.getCredentials('orbitApi'); let options = { headers: { Authorization: `Bearer ${credentials.accessToken}`, }, method, qs, body, uri: uri || `https://app.orbit.love/api/v1${resource}`, json: true, }; options = Object.assign({}, options, option); return await this.helpers.request(options); } catch (error) { throw new n8n_workflow_1.NodeApiError(this.getNode(), error); } } function resolveIdentities(responseData) { const identities = {}; for (const data of responseData.included) { identities[data.id] = data; } if (!Array.isArray(responseData.data)) { responseData.data = [responseData.data]; } for (let i = 0; i < responseData.data.length; i++) { for (let y = 0; y < responseData.data[i].relationships.identities.data.length; y++) { //@ts-ignore responseData.data[i].relationships.identities.data[y] = identities[responseData.data[i].relationships.identities.data[y].id]; } } } function resolveMember(responseData) { const members = {}; for (const data of responseData.included) { members[data.id] = data; } if (!Array.isArray(responseData.data)) { responseData.data = [responseData.data]; } for (let i = 0; i < responseData.data.length; i++) { //@ts-ignore responseData.data[i].relationships.member.data = //@ts-ignore members[responseData.data[i].relationships.member.data.id]; } } /** * Make an API request to paginated flow endpoint * and return all results */ async function orbitApiRequestAllItems(propertyName, method, resource, body = {}, query = {}) { const returnData = []; let responseData; query.page = 1; do { responseData = await orbitApiRequest.call(this, method, resource, body, query); returnData.push.apply(returnData, responseData[propertyName]); if (query.resolveIdentities === true) { resolveIdentities(responseData); } if (query.resolveMember === true) { resolveMember(responseData); } query.page++; const limit = query.limit; if (limit && returnData.length >= limit) { return returnData; } } while (responseData.data.length !== 0); return returnData; } //# sourceMappingURL=GenericFunctions.js.map