From e3b7c7ccb181ffbd4f1da4e07f5d80c4fcada72d Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 19 Mar 2020 15:29:18 -0600 Subject: [PATCH] Update ApiV1Controller, fix link header pagination --- app/Http/Controllers/Api/ApiV1Controller.php | 28 +++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/Api/ApiV1Controller.php b/app/Http/Controllers/Api/ApiV1Controller.php index 61d8d10fa..fc2105e48 100644 --- a/app/Http/Controllers/Api/ApiV1Controller.php +++ b/app/Http/Controllers/Api/ApiV1Controller.php @@ -1254,11 +1254,31 @@ class ApiV1Controller extends Controller $baseUrl = config('app.url') . '/api/v1/notifications?'; - $link = '<'.$baseUrl.'max_id='.$maxId.'>; rel="next",<'.$baseUrl.'min_id='.$minId.'>; rel="prev"'; + if($minId == $maxId) { + $minId = null; + } - return response()->json($res)->withHeaders([ - 'Link' => $link, - ]); + if($maxId) { + $link = '<'.$baseUrl.'max_id='.$maxId.'>; rel="next"'; + } + + if($minId) { + $link = '<'.$baseUrl.'min_id='.$minId.'>; rel="prev"'; + } + + if($maxId && $minId) { + $link = '<'.$baseUrl.'max_id='.$maxId.'>; rel="next",<'.$baseUrl.'min_id='.$minId.'>; rel="prev"'; + } + + $res = response()->json($res); + + if(isset($link)) { + $res->withHeaders([ + 'Link' => $link, + ]); + } + + return $res; } /**