From 066f1a9282bad1abacf8817200271dd0116acdc3 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 29 Apr 2019 20:37:27 -0600 Subject: [PATCH] Update BaseApiController, cache verify_credentials endpoint --- app/Http/Controllers/Api/BaseApiController.php | 10 +++++++--- app/Http/Controllers/AvatarController.php | 1 + app/Http/Controllers/FollowerController.php | 2 ++ app/Http/Controllers/InternalApiController.php | 2 +- app/Http/Controllers/Settings/HomeSettings.php | 2 ++ 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/Api/BaseApiController.php b/app/Http/Controllers/Api/BaseApiController.php index acd5bf927..2cc0cacdc 100644 --- a/app/Http/Controllers/Api/BaseApiController.php +++ b/app/Http/Controllers/Api/BaseApiController.php @@ -309,9 +309,13 @@ class BaseApiController extends Controller public function verifyCredentials(Request $request) { - $profile = Auth::user()->profile; - $resource = new Fractal\Resource\Item($profile, new AccountTransformer()); - $res = $this->fractal->createData($resource)->toArray(); + $id = Auth::id(); + + $res = Cache::remember('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()); + return $this->fractal->createData($resource)->toArray(); + }); return response()->json($res); } diff --git a/app/Http/Controllers/AvatarController.php b/app/Http/Controllers/AvatarController.php index 49a3515f4..ef63afa1c 100644 --- a/app/Http/Controllers/AvatarController.php +++ b/app/Http/Controllers/AvatarController.php @@ -41,6 +41,7 @@ class AvatarController extends Controller $avatar->save(); Cache::forget("avatar:{$profile->id}"); + Cache::forget('user:account:id:'.$user->id); AvatarOptimize::dispatch($user->profile, $currentAvatar); } catch (Exception $e) { } diff --git a/app/Http/Controllers/FollowerController.php b/app/Http/Controllers/FollowerController.php index f8cec93b5..c6d4f9a3c 100644 --- a/app/Http/Controllers/FollowerController.php +++ b/app/Http/Controllers/FollowerController.php @@ -76,5 +76,7 @@ class FollowerController extends Controller Cache::forget('profile:following:'.$user->id); Cache::forget('profile:followers:'.$user->id); Cache::forget('api:local:exp:rec:'.$user->id); + Cache::forget('user:account:id:'.$target->user_id); + Cache::forget('user:account:id:'.$user->user_id); } } diff --git a/app/Http/Controllers/InternalApiController.php b/app/Http/Controllers/InternalApiController.php index e66b61dbe..8f728acc3 100644 --- a/app/Http/Controllers/InternalApiController.php +++ b/app/Http/Controllers/InternalApiController.php @@ -400,7 +400,7 @@ class InternalApiController extends Controller $status->save(); NewStatusPipeline::dispatch($status); - + Cache::forget('user:account:id:'.$profile->user_id); return $status->url(); } } diff --git a/app/Http/Controllers/Settings/HomeSettings.php b/app/Http/Controllers/Settings/HomeSettings.php index 9b4656bac..a996a8548 100644 --- a/app/Http/Controllers/Settings/HomeSettings.php +++ b/app/Http/Controllers/Settings/HomeSettings.php @@ -10,6 +10,7 @@ use App\User; use App\UserFilter; use App\Util\Lexer\PrettyNumber; use Auth; +use Cache; use DB; use Purify; use Illuminate\Http\Request; @@ -101,6 +102,7 @@ trait HomeSettings } if ($changes === true) { + Cache::forget('user:account:id:'.$user->id); $user->save(); $profile->save();