From 2a106c4e12a732afe2c3d9eca30dc5de1a2c8bf0 Mon Sep 17 00:00:00 2001
From: Daniel Supernault <danielsupernault@gmail.com>
Date: Wed, 25 Sep 2019 22:08:22 -0600
Subject: [PATCH] Add /api/v1/lists endpoint

---
 app/Http/Controllers/Api/ApiV1Controller.php | 39 +++++++++++++++-----
 routes/web.php                               |  1 +
 2 files changed, 31 insertions(+), 9 deletions(-)

diff --git a/app/Http/Controllers/Api/ApiV1Controller.php b/app/Http/Controllers/Api/ApiV1Controller.php
index 35cd204c2..3914024e8 100644
--- a/app/Http/Controllers/Api/ApiV1Controller.php
+++ b/app/Http/Controllers/Api/ApiV1Controller.php
@@ -816,15 +816,13 @@ class ApiV1Controller extends Controller
         return response()->json([]);        
     }
 
-    public function statusById(Request $request, $id)
-    {
-        $status = Status::whereVisibility('public')->findOrFail($id);
-        $resource = new Fractal\Resource\Item($status, new StatusTransformer());
-        $res = $this->fractal->createData($resource)->toArray();
-
-        return response()->json($res);
-    }
-
+    /**
+     * GET /api/v1/instance
+     *
+     *   Information about the server.
+     *
+     * @return Instance
+     */
     public function instance(Request $request)
     {
         $res = [
@@ -847,6 +845,29 @@ class ApiV1Controller extends Controller
         return response()->json($res, 200, [], JSON_PRETTY_PRINT);
     }
 
+    /**
+     * GET /api/v1/lists
+     *
+     *   Return empty array as we don't support lists
+     *
+     * @return null
+     */
+    public function accountLists(Request $request)
+    {
+        abort_if(!$request->user(), 403);
+        
+        return response()->json([]);        
+    }
+
+    public function statusById(Request $request, $id)
+    {
+        $status = Status::whereVisibility('public')->findOrFail($id);
+        $resource = new Fractal\Resource\Item($status, new StatusTransformer());
+        $res = $this->fractal->createData($resource)->toArray();
+
+        return response()->json($res);
+    }
+
     public function context(Request $request)
     {
         // todo
diff --git a/routes/web.php b/routes/web.php
index 654d7280d..9eb5c7ba2 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -107,6 +107,7 @@ Route::domain(config('pixelfed.domain.app'))->middleware(['validemail', 'twofact
             Route::post('follow_requests/{id}/authorize', 'Api\ApiV1Controller@accountFollowRequestAccept')->middleware('auth:api');
             Route::post('follow_requests/{id}/reject', 'Api\ApiV1Controller@accountFollowRequestReject')->middleware('auth:api');
             Route::get('suggestions', 'Api\ApiV1Controller@accountSuggestions')->middleware('auth:api');
+            Route::get('lists', 'Api\ApiV1Controller@accountLists')->middleware('auth:api');
 
             Route::get('likes', 'ApiController@hydrateLikes');
             Route::post('media', 'ApiController@uploadMedia')->middleware('auth:api');