Skip to content

Commit 1e77259

Browse files
authored
Fixed pagination bug where items with id 0 are skipped (#1182)
1 parent f41eba5 commit 1e77259

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/inc/apiv2/common/AbstractModelAPI.class.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -478,7 +478,7 @@ public static function getManyResources(object $apiClass, Request $request, Resp
478478
// $defaultPageSize = SConfig::getInstance()->getVal(DConfig::DEFAULT_PAGE_SIZE);
479479
// $maxPageSize = SConfig::getInstance()->getVal(DConfig::MAX_PAGE_SIZE);
480480

481-
$pageAfter = $apiClass->getQueryParameterFamilyMember($request, 'page', 'after') ?? 0;
481+
$pageAfter = $apiClass->getQueryParameterFamilyMember($request, 'page', 'after');
482482
$pageSize = $apiClass->getQueryParameterFamilyMember($request, 'page', 'size') ?? $defaultPageSize;
483483
if ($pageSize < 0) {
484484
throw new HttpErrorException("Invalid parameter, page[size] must be a positive integer", 400);
@@ -536,7 +536,9 @@ public static function getManyResources(object $apiClass, Request $request, Resp
536536
//pagination filters need to be added after max has been calculated
537537
$finalFs[Factory::LIMIT] = new LimitFilter($pageSize);
538538

539-
$finalFs[Factory::FILTER][] = new QueryFilter($primaryKey, $pageAfter, '>', $factory);
539+
if (isset($pageAfter)){
540+
$finalFs[Factory::FILTER][] = new QueryFilter($primaryKey, $pageAfter, '>', $factory);
541+
}
540542
$pageBefore = $apiClass->getQueryParameterFamilyMember($request, 'page', 'before');
541543
if (isset($pageBefore)) {
542544
$finalFs[Factory::FILTER][] = new QueryFilter($primaryKey, $pageBefore, '<', $factory);

0 commit comments

Comments
 (0)