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