fix(HTTP Request Node): Support form data when using pagination (#8497)

This commit is contained in:
Elias Meire
2024-02-01 11:33:18 +01:00
committed by GitHub
parent cc41fc7c80
commit ca75744c7f
3 changed files with 1900 additions and 1568 deletions

View File

@@ -1208,6 +1208,23 @@ async function prepareBinaryData(
return await setBinaryDataBuffer(returnData, binaryData, workflowId, executionId);
}
function applyPaginationRequestData(
requestData: OptionsWithUri,
paginationRequestData: PaginationOptions['request'],
): OptionsWithUri {
const preparedPaginationData: Partial<OptionsWithUri> = { ...paginationRequestData };
if ('formData' in requestData) {
preparedPaginationData.formData = paginationRequestData.body;
delete preparedPaginationData.body;
} else if ('form' in requestData) {
preparedPaginationData.form = paginationRequestData.body;
delete preparedPaginationData.body;
}
return merge({}, requestData, preparedPaginationData);
}
/**
* Makes a request using OAuth data for authentication
*
@@ -2806,7 +2823,7 @@ const getRequestHelperFunctions = (
let tempResponseData: IN8nHttpFullResponse;
let makeAdditionalRequest: boolean;
let paginateRequestData: IHttpRequestOptions;
let paginateRequestData: PaginationOptions['request'];
const runIndex = 0;
@@ -2836,9 +2853,9 @@ const getRequestHelperFunctions = (
executeData,
additionalKeys,
false,
) as object as IHttpRequestOptions;
) as object as PaginationOptions['request'];
const tempRequestOptions = merge(requestOptions, paginateRequestData);
const tempRequestOptions = applyPaginationRequestData(requestOptions, paginateRequestData);
if (credentialsType) {
tempResponseData = await this.helpers.requestWithAuthentication.call(