소스 검색

Update ApiV1Controller, fix link header pagination

Daniel Supernault 5 년 전
부모
커밋
e3b7c7ccb1
1개의 변경된 파일24개의 추가작업 그리고 4개의 파일을 삭제
  1. 24 4
      app/Http/Controllers/Api/ApiV1Controller.php

+ 24 - 4
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;
     }
 
     /**