Sfoglia il codice sorgente

Update ApiV1Controller, fix link header pagination

Daniel Supernault 5 anni fa
parent
commit
e3b7c7ccb1
1 ha cambiato i file con 24 aggiunte e 4 eliminazioni
  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;
     }
 
     /**