mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 18:12:04 +00:00
fix(HTTP Request Node): Handle special characters in pagination expressions + improve hint text (#8576)
Co-authored-by: Michael Kret <michael.k@radency.com>
This commit is contained in:
@@ -197,6 +197,17 @@ const createFormDataObject = (data: Record<string, unknown>) => {
|
||||
return formData;
|
||||
};
|
||||
|
||||
const validateUrl = (url?: string): boolean => {
|
||||
if (!url) return false;
|
||||
|
||||
try {
|
||||
new URL(url);
|
||||
return true;
|
||||
} catch (error) {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
function searchForHeader(config: AxiosRequestConfig, headerName: string) {
|
||||
if (config.headers === undefined) {
|
||||
return undefined;
|
||||
@@ -1240,7 +1251,10 @@ function applyPaginationRequestData(
|
||||
requestData: OptionsWithUri,
|
||||
paginationRequestData: PaginationOptions['request'],
|
||||
): OptionsWithUri {
|
||||
const preparedPaginationData: Partial<OptionsWithUri> = { ...paginationRequestData };
|
||||
const preparedPaginationData: Partial<OptionsWithUri> = {
|
||||
...paginationRequestData,
|
||||
uri: paginationRequestData.url,
|
||||
};
|
||||
|
||||
if ('formData' in requestData) {
|
||||
preparedPaginationData.formData = paginationRequestData.body;
|
||||
@@ -2885,6 +2899,14 @@ const getRequestHelperFunctions = (
|
||||
|
||||
const tempRequestOptions = applyPaginationRequestData(requestOptions, paginateRequestData);
|
||||
|
||||
if (!validateUrl(tempRequestOptions.uri as string)) {
|
||||
throw new NodeOperationError(node, `'${paginateRequestData.url}' is not a valid URL.`, {
|
||||
itemIndex,
|
||||
runIndex,
|
||||
type: 'invalid_url',
|
||||
});
|
||||
}
|
||||
|
||||
if (credentialsType) {
|
||||
tempResponseData = await this.helpers.requestWithAuthentication.call(
|
||||
this,
|
||||
|
||||
Reference in New Issue
Block a user