From 908b77fd9be23ad3f5114467482e692418ee6e15 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Fri, 14 Jun 2024 18:27:23 +0100 Subject: [PATCH] Fixing some issues with using offsets. --- .../server/src/sdk/app/rows/search/external.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/server/src/sdk/app/rows/search/external.ts b/packages/server/src/sdk/app/rows/search/external.ts index a32a036846..e90ec049d7 100644 --- a/packages/server/src/sdk/app/rows/search/external.ts +++ b/packages/server/src/sdk/app/rows/search/external.ts @@ -33,9 +33,9 @@ export async function search( let bookmark = (params.bookmark && parseInt(params.bookmark as string)) || undefined if (paginate && !bookmark) { - bookmark = 1 + bookmark = 0 } - let paginateObj = {} + let paginateObj: PaginationJson | undefined if (paginate && !limit) { throw new Error("Cannot paginate query without a limit") @@ -45,7 +45,9 @@ export async function search( paginateObj = { // add one so we can track if there is another page limit: limit + 1, - page: bookmark, + } + if (bookmark) { + paginateObj.offset = limit * bookmark } } else if (params && limit) { paginateObj = { @@ -97,7 +99,11 @@ export async function search( }) // need wrapper object for bookmarks etc when paginating - return { rows, hasNextPage, bookmark: bookmark && bookmark + 1 } + const response: SearchResponse = { rows, hasNextPage } + if (hasNextPage && bookmark != null) { + response.bookmark = bookmark + 1 + } + return response } catch (err: any) { if (err.message && err.message.includes("does not exist")) { throw new Error(