UNPKG

@skriptfabrik/n8n-nodes-moco

Version:
94 lines 4.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createUTCStringFromNodeParameter = createUTCStringFromNodeParameter; exports.createParametersFromNodeParameter = createParametersFromNodeParameter; exports.mocoApiRequest = mocoApiRequest; exports.mocoApiRequestAllItems = mocoApiRequestAllItems; const tslib_1 = require("tslib"); const moment_timezone_1 = tslib_1.__importDefault(require("moment-timezone")); const n8n_workflow_1 = require("n8n-workflow"); function createUTCStringFromNodeParameter(parameterName, itemIndex) { const dateTime = this.getNodeParameter(parameterName, itemIndex); if (dateTime === '') { return undefined; } const timezone = this.getTimezone(); return moment_timezone_1.default.tz(dateTime, timezone).utc().format(); } function createParametersFromNodeParameter(parameterName, itemIndex, fields) { const additionalFieldsData = this.getNodeParameter(parameterName, itemIndex); const returnData = {}; for (const field of fields) { if (additionalFieldsData[field] === undefined || additionalFieldsData[field] === '') { continue; } const name = field.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`); returnData[name] = additionalFieldsData[field]; if (typeof returnData[name] === 'boolean') { returnData[name] = Boolean(returnData[name]).toString(); } } return returnData; } function mocoApiRequest(itemIndex, method, url, options) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const credentials = (yield this.getCredentials('mocoApi', itemIndex)); const { impersonateUserId, body, qs } = options || {}; const requestOptions = { url, baseURL: `https://${credentials.subDomain}.mocoapp.com/api/v1`, headers: Object.assign(Object.assign({ accept: 'application/json' }, (body ? { 'content-type': 'application/json' } : {})), (impersonateUserId ? { 'x-impersonate-user-id': impersonateUserId } : {})), method, body, qs, returnFullResponse: true, ignoreHttpStatusErrors: true, json: true, }; let response; const retries = 5; let remainingRetries = retries; do { response = yield this.helpers.httpRequestWithAuthentication.call(this, 'mocoApi', requestOptions); if (response.statusCode === 429) { yield (0, n8n_workflow_1.sleep)(Math.pow(2, retries - remainingRetries) * 1000); remainingRetries = remainingRetries - 1; } else { remainingRetries = 0; } } while (remainingRetries > 0); if (response.statusCode >= 400) { throw new n8n_workflow_1.NodeApiError(this.getNode(), {}, { message: response.statusMessage, description: JSON.stringify(response.body), httpCode: response.statusCode.toString(), itemIndex, }); } return response.body; }); } function mocoApiRequestAllItems(itemIndex, method, url, options) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const returnData = []; const qs = (options === null || options === void 0 ? void 0 : options.qs) || {}; const { limit } = qs; let responseData; qs['page'] = 1; delete qs['limit']; do { responseData = (yield mocoApiRequest.call(this, itemIndex, method, url, Object.assign(Object.assign({}, options), { qs }))); returnData.push(...responseData); if (limit !== undefined && returnData.length >= limit) { return returnData.splice(0, limit); } qs['page']++; } while (responseData.length > 0); return returnData; }); } //# sourceMappingURL=GenericFunctions.js.map