From 0df4da9e714b4d2fb924dcb9748ff751b5f66683 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Fri, 3 Feb 2023 10:55:36 +0100 Subject: [PATCH] catalog-client: move cursors to pageinfo Signed-off-by: Vincenzo Scamporlino --- packages/catalog-client/src/CatalogClient.test.ts | 12 ++++++------ packages/catalog-client/src/CatalogClient.ts | 13 ++++++------- packages/catalog-client/src/types/api.ts | 10 ++++++---- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/packages/catalog-client/src/CatalogClient.test.ts b/packages/catalog-client/src/CatalogClient.test.ts index bc041ffd19..61fe1e4e19 100644 --- a/packages/catalog-client/src/CatalogClient.test.ts +++ b/packages/catalog-client/src/CatalogClient.test.ts @@ -310,8 +310,8 @@ describe('CatalogClient', () => { const response = await client.queryEntities({}, { token }); expect(response?.entities).toEqual(defaultClientResponse.entities); expect(response?.totalItems).toEqual(defaultClientResponse.totalItems); - expect(response?.nextCursor).toBeDefined(); - expect(response?.prevCursor).toBeDefined(); + expect(response?.pageInfo.nextCursor).toBeDefined(); + expect(response?.pageInfo.prevCursor).toBeDefined(); }); it('builds multiple entity search filters properly', async () => { @@ -429,15 +429,15 @@ describe('CatalogClient', () => { }); expect(mockedEndpoint.mock.calls[0][0].url.search).toBe('?limit=2'); - expect(response?.nextCursor).toBeDefined(); - expect(response?.prevCursor).toBeDefined(); + expect(response?.pageInfo.nextCursor).toBeDefined(); + expect(response?.pageInfo.prevCursor).toBeDefined(); - await client.queryEntities({ cursor: response!.nextCursor! }); + await client.queryEntities({ cursor: response!.pageInfo.nextCursor! }); expect(mockedEndpoint.mock.calls[1][0].url.search).toBe( '?cursor=nextcursor', ); - await client.queryEntities({ cursor: response!.prevCursor! }); + await client.queryEntities({ cursor: response!.pageInfo.prevCursor! }); expect(mockedEndpoint.mock.calls[2][0].url.search).toBe( '?cursor=prevcursor', ); diff --git a/packages/catalog-client/src/CatalogClient.ts b/packages/catalog-client/src/CatalogClient.ts index 389f109989..c8bf7e57c2 100644 --- a/packages/catalog-client/src/CatalogClient.ts +++ b/packages/catalog-client/src/CatalogClient.ts @@ -210,7 +210,7 @@ export class CatalogClient implements CatalogApi { async queryEntities( request: QueryEntitiesRequest = {}, options?: CatalogRequestOptions, - ): Promise { + ) { const params: string[] = []; if (isQueryEntitiesInitialRequest(request)) { @@ -246,12 +246,11 @@ export class CatalogClient implements CatalogApi { } const query = params.length ? `?${params.join('&')}` : ''; - return this.requestRequired<{ - entities: Entity[]; - totalItems: number; - nextCursor?: string; - prevCursor?: string; - }>('GET', `/entities/by-query${query}`, options); + return this.requestRequired( + 'GET', + `/entities/by-query${query}`, + options, + ); } /** diff --git a/packages/catalog-client/src/types/api.ts b/packages/catalog-client/src/types/api.ts index 09a67c8bce..5ef127660b 100644 --- a/packages/catalog-client/src/types/api.ts +++ b/packages/catalog-client/src/types/api.ts @@ -427,10 +427,12 @@ export type QueryEntitiesResponse = { entities: Entity[]; /* The number of entities among all the requests */ totalItems: number; - /* The cursor for the next batch of entities */ - nextCursor?: string; - /* The cursor for the previous batch of entities */ - prevCursor?: string; + pageInfo: { + /* The cursor for the next batch of entities */ + nextCursor?: string; + /* The cursor for the previous batch of entities */ + prevCursor?: string; + }; }; /**