浏览代码

Update verify_credentials endpoint

Daniel Supernault 5 年之前
父节点
当前提交
be7eae8494
共有 2 个文件被更改,包括 29 次插入1 次删除
  1. 28 0
      app/Http/Controllers/Api/ApiV1Controller.php
  2. 1 1
      routes/web.php

+ 28 - 0
app/Http/Controllers/Api/ApiV1Controller.php

@@ -89,6 +89,34 @@ class ApiV1Controller extends Controller
         return $res;
 	}
 
+    /**
+     * GET /api/v1/accounts/verify_credentials
+     *
+     *
+     * @return \App\Transformer\Api\AccountTransformer
+     */
+    public function verifyCredentials(Request $request)
+    {
+        abort_if(!$request->user(), 403);
+        $id = $request->user()->id;
+
+        $res = Cache::remember('mastoapi:user:account:id:'.$id, now()->addHours(6), function() use($id) {
+            $profile = Profile::whereNull('status')->whereUserId($id)->firstOrFail();
+            $resource = new Fractal\Resource\Item($profile, new AccountTransformer());
+            $res = $this->fractal->createData($resource)->toArray();
+            $res['source'] = [
+                'privacy' => $profile->is_private ? 'private' : 'public',
+                'sensitive' => $profile->cw ? true : false,
+                'language' => 'en',
+                'note' => '',
+                'fields' => []
+            ];
+            return $res;
+        });
+
+        return response()->json($res);
+    }
+
     /**
      * GET /api/v1/accounts/{id}
      *

+ 1 - 1
routes/web.php

@@ -77,7 +77,7 @@ Route::domain(config('pixelfed.domain.app'))->middleware(['validemail', 'twofact
         Route::get('nodeinfo/2.0.json', 'FederationController@nodeinfo');
 
         Route::group(['prefix' => 'v1'], function () {
-            Route::get('accounts/verify_credentials', 'ApiController@verifyCredentials')->middleware('auth:api');
+            Route::get('accounts/verify_credentials', 'Api\ApiV1Controller@verifyCredentials')->middleware('auth:api');
             Route::patch('accounts/update_credentials', 'Api\ApiV1Controller@accountUpdateCredentials')->middleware('auth:api');
             Route::get('accounts/relationships', 'Api\ApiV1Controller@accountRelationshipsById')->middleware('auth:api');
             Route::get('accounts/search', 'Api\ApiV1Controller@accountSearch')->middleware('auth:api');