From 9950958531723e76591c35432de974db0c8bd9bf Mon Sep 17 00:00:00 2001 From: fikri-kompanion <101977604+fikri-kompanion@users.noreply.github.com> Date: Sat, 23 Sep 2023 12:42:33 +0800 Subject: [PATCH] Ability to add cursor pagination Extend model pagination with cursor pagination. ``` @apiResourceModel App\Models\User paginate=10,cursor ``` --- src/Extracting/Shared/ApiResourceResponseTools.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Extracting/Shared/ApiResourceResponseTools.php b/src/Extracting/Shared/ApiResourceResponseTools.php index b93cc603..ad3991cf 100644 --- a/src/Extracting/Shared/ApiResourceResponseTools.php +++ b/src/Extracting/Shared/ApiResourceResponseTools.php @@ -7,6 +7,7 @@ use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Http\Resources\Json\ResourceCollection; +use Illuminate\Pagination\CursorPaginator; use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Pagination\Paginator; use Illuminate\Support\Arr; @@ -86,6 +87,10 @@ public static function getApiResourceOrCollectionInstance( $perPage = $paginationStrategy[0]; $paginator = new Paginator($models, $perPage); $list = $paginator; + } elseif (count($paginationStrategy) == 2 && $paginationStrategy[1] == 'cursor') { + $perPage = $paginationStrategy[0]; + $paginator = new CursorPaginator($models, $perPage); + $list = $paginator; } else { $list = collect($models); }