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:
Elias Meire
2024-02-12 17:32:27 +01:00
committed by GitHub
parent d38a822b95
commit 3b2078c3ca
11 changed files with 218 additions and 153 deletions

View File

@@ -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,