UNPKG

n8n-nodes-base

Version:

Base nodes of n8n

85 lines 3.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildBinAPIURL = buildBinAPIURL; exports.buildBinTestURL = buildBinTestURL; exports.buildRequestURL = buildRequestURL; exports.transformBinResponse = transformBinResponse; const n8n_workflow_1 = require("n8n-workflow"); // Regular expressions used to extract binId from parameter value const BIN_ID_REGEX = /\b\d{13}-\d{13}\b/g; /** * Extracts the PostBin Bin Id from the specified string. * This method should be able to extract bin Id from the * PostBin URL or from the string in the following format: * `Bin '<binId>'.` * */ function parseBinId(context) { const binId = context.getNodeParameter('binId'); // Test if the Bin id is in the expected format BIN_ID_REGEX.lastIndex = 0; const idMatch = BIN_ID_REGEX.exec(binId); // Return what is matched if (idMatch) { return idMatch[0]; } // If it's not recognized, error out throw new n8n_workflow_1.NodeApiError(context.getNode(), {}, { message: 'Bin ID format is not valid', description: 'Please check the provided Bin ID and try again.', parseXml: false, }); } /** * Creates correctly-formatted PostBin API URL based on the entered binId. * This function makes sure binId is in the expected format by parsing it * from current node parameter value. * */ async function buildBinAPIURL(requestOptions) { const binId = parseBinId(this); // Assemble the PostBin API URL and put it back to requestOptions requestOptions.url = `/api/bin/${binId}`; return requestOptions; } /** * Creates correctly-formatted PostBin Bin test URL based on the entered binId. * This function makes sure binId is in the expected format by parsing it * from current node parameter value. * */ async function buildBinTestURL(requestOptions) { const binId = parseBinId(this); // Assemble the PostBin API URL and put it back to requestOptions requestOptions.url = `/${binId}`; return requestOptions; } /** * Creates correctly-formatted PostBin API URL based on the entered binId and reqId. * This function makes sure binId is in the expected format by parsing it * from current node parameter value. * */ async function buildRequestURL(requestOptions) { const reqId = this.getNodeParameter('requestId', 'shift'); const binId = parseBinId(this); requestOptions.url = `/api/bin/${binId}/req/${reqId}`; return requestOptions; } /** * Converts the bin response data and adds additional properties * */ async function transformBinResponse(items, _response) { items.forEach((item) => (item.json = { binId: item.json.binId, nowTimestamp: item.json.now, nowIso: new Date(item.json.now).toISOString(), expiresTimestamp: item.json.expires, expiresIso: new Date(item.json.expires).toISOString(), requestUrl: 'https://www.postb.in/' + item.json.binId, viewUrl: 'https://www.postb.in/b/' + item.json.binId, })); return items; } //# sourceMappingURL=GenericFunctions.js.map