UNPKG

n8n-nodes-linkupapi

Version:

n8n node for LINKUP API - Complete LinkedIn automation with 100% API coverage and full documentation

86 lines (85 loc) 4.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MultiRequestsOperations = void 0; class MultiRequestsOperations { static async buildRequestBody(context, itemIndex, operation) { const body = {}; switch (operation) { case "customRequest": const method = context.getNodeParameter("method", itemIndex); const url = context.getNodeParameter("url", itemIndex); const sendQueryParams = context.getNodeParameter("sendQueryParams", itemIndex, false); const sendHeaders = context.getNodeParameter("sendHeaders", itemIndex, false); const sendBody = context.getNodeParameter("sendBody", itemIndex, false); const bodyParams = context.getNodeParameter("bodyParams", itemIndex, {}); const options = context.getNodeParameter("options", itemIndex, {}); // Required parameters validation if (!url) { throw new Error("URL is required for this operation"); } // Validation de l'URL try { new URL(url); } catch (error) { throw new Error(`Invalid URL format: ${url}. Please provide a complete URL including protocol (https://)`); } // Add base parameters body.method = method; body.url = url; // Les credentials seront gérées dans le nœud principal // Initialiser les headers par défaut (seront fusionnés plus tard) body.headers = {}; // Add query parameters if enabled if (sendQueryParams) { const queryParams = context.getNodeParameter("queryParams", itemIndex, {}); if (queryParams.parameters) { body.queryParams = {}; for (const param of queryParams.parameters) { if (param.name && param.value) { body.queryParams[param.name] = param.value; } } } } // Add headers if enabled if (sendHeaders) { const headers = context.getNodeParameter("headers", itemIndex, {}); if (headers.headers) { // Fusionner avec les headers par défaut au lieu de les écraser const customHeaders = {}; for (const header of headers.headers) { if (header.name && header.value) { customHeaders[header.name] = header.value; } } body.headers = { ...body.headers, ...customHeaders }; } } // Add request body if enabled if (sendBody && bodyParams && bodyParams.parameters && bodyParams.parameters.length > 0) { // Use Body Parameters if enabled and defined body.requestBody = {}; for (const param of bodyParams.parameters) { if (param.name && param.value) { body.requestBody[param.name] = param.value; } } } else if (sendBody) { // If Send Body is enabled but no parameters, empty body body.requestBody = {}; } // Ajouter les options if (options.timeout) body.timeout = options.timeout; if (options.followRedirects !== undefined) body.followRedirects = options.followRedirects; if (options.allowSelfSignedCertificates !== undefined) body.allowSelfSignedCertificates = options.allowSelfSignedCertificates; break; } return body; } } exports.MultiRequestsOperations = MultiRequestsOperations;