mirror of
https://github.com/n8n-io/n8n.git
synced 2024-12-25 04:34:06 -08:00
fix(n8n Node): fix resource locator not returning all items (#4248)
This commit is contained in:
parent
971c2c0aed
commit
ed4dcbb5dd
|
@ -24,7 +24,8 @@ export async function apiRequest(
|
|||
endpoint: string,
|
||||
body: object,
|
||||
query?: IDataObject,
|
||||
): Promise<unknown> {
|
||||
// tslint:disable-next-line:no-any
|
||||
): Promise<any> {
|
||||
query = query || {};
|
||||
|
||||
type N8nApiCredentials = {
|
||||
|
@ -39,7 +40,7 @@ export async function apiRequest(
|
|||
method,
|
||||
body,
|
||||
qs: query,
|
||||
uri: `${baseUrl}/${endpoint}`,
|
||||
uri: `${baseUrl.replace(new RegExp('/$'), '')}/${endpoint}`,
|
||||
json: true,
|
||||
};
|
||||
|
||||
|
@ -53,6 +54,30 @@ export async function apiRequest(
|
|||
}
|
||||
}
|
||||
|
||||
export async function apiRequestAllItems(
|
||||
this: IHookFunctions | IExecuteFunctions | ILoadOptionsFunctions,
|
||||
method: string,
|
||||
endpoint: string,
|
||||
body: object,
|
||||
query?: IDataObject,
|
||||
// tslint:disable-next-line:no-any
|
||||
): Promise<any> {
|
||||
query = query || {};
|
||||
const returnData: IDataObject[] = [];
|
||||
|
||||
let nextCursor: string | undefined = undefined;
|
||||
let responseData;
|
||||
|
||||
do {
|
||||
query.cursor = nextCursor;
|
||||
query.limit = 100;
|
||||
responseData = await apiRequest.call(this, method, endpoint, body, query);
|
||||
returnData.push.apply(returnData, responseData.data);
|
||||
nextCursor = responseData.nextCursor as string | undefined;
|
||||
} while (nextCursor);
|
||||
return returnData;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a cursor-based paginator to use with n8n 'getAll' type endpoints.
|
||||
*
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { ILoadOptionsFunctions, INodeListSearchResult, INodeProperties } from 'n8n-workflow';
|
||||
import { apiRequest } from './GenericFunctions';
|
||||
import { apiRequestAllItems } from './GenericFunctions';
|
||||
|
||||
type DataItemsResponse<T> = {
|
||||
data: T[];
|
||||
|
@ -18,7 +18,7 @@ export async function searchWorkflows(
|
|||
this: ILoadOptionsFunctions,
|
||||
query?: string,
|
||||
): Promise<INodeListSearchResult> {
|
||||
const searchResults = (await apiRequest.call(
|
||||
const searchResults = (await apiRequestAllItems.call(
|
||||
this,
|
||||
'GET',
|
||||
'workflows',
|
||||
|
@ -27,7 +27,7 @@ export async function searchWorkflows(
|
|||
|
||||
// Map the workflows list against a simple name/id filter, and sort
|
||||
// with the latest on top.
|
||||
const workflows = (searchResults?.data as PartialWorkflow[])
|
||||
const workflows = (searchResults as unknown as PartialWorkflow[])
|
||||
.map((w: PartialWorkflow) => ({
|
||||
name: `${w.name} (#${w.id})`,
|
||||
value: w.id,
|
||||
|
|
Loading…
Reference in a new issue