From 96afc3e7819b6f41fe9b8b090fef93c0af0a1dbc Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 9 Jan 2021 02:41:17 -0700 Subject: [PATCH] Update Controllers, add last_active_at logic --- app/Http/Controllers/Api/ApiV1Controller.php | 20 ++++++++++++++++++ app/Http/Controllers/PublicApiController.php | 22 +++++++++++++++++++- 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Api/ApiV1Controller.php b/app/Http/Controllers/Api/ApiV1Controller.php index dbf8f6116..2ecd3ed05 100644 --- a/app/Http/Controllers/Api/ApiV1Controller.php +++ b/app/Http/Controllers/Api/ApiV1Controller.php @@ -1320,6 +1320,15 @@ class ApiV1Controller extends Controller $min = $request->input('min_id'); $max = $request->input('max_id'); $limit = $request->input('limit') ?? 3; + $user = $request->user(); + + $key = 'user:last_active_at:id:'.$user->id; + $ttl = now()->addMinutes(5); + Cache::remember($key, $ttl, function() use($user) { + $user->last_active_at = now(); + $user->save(); + return; + }); $pid = $request->user()->profile_id; @@ -1424,6 +1433,15 @@ class ApiV1Controller extends Controller $min = $request->input('min_id'); $max = $request->input('max_id'); $limit = $request->input('limit') ?? 3; + $user = $request->user(); + + $key = 'user:last_active_at:id:'.$user->id; + $ttl = now()->addMinutes(5); + Cache::remember($key, $ttl, function() use($user) { + $user->last_active_at = now(); + $user->save(); + return; + }); if($min || $max) { $dir = $min ? '>' : '<'; @@ -1452,6 +1470,7 @@ class ApiV1Controller extends Controller ->with('profile', 'hashtags', 'mentions') ->where('id', $dir, $id) ->whereScope('public') + ->where('created_at', '>', now()->subDays(14)) ->latest() ->limit($limit) ->get(); @@ -1479,6 +1498,7 @@ class ApiV1Controller extends Controller ->whereIn('type', ['photo', 'photo:album', 'video', 'video:album']) ->with('profile', 'hashtags', 'mentions') ->whereScope('public') + ->where('created_at', '>', now()->subDays(14)) ->latest() ->simplePaginate($limit); } diff --git a/app/Http/Controllers/PublicApiController.php b/app/Http/Controllers/PublicApiController.php index 3ba2e01da..92e3130ad 100644 --- a/app/Http/Controllers/PublicApiController.php +++ b/app/Http/Controllers/PublicApiController.php @@ -272,8 +272,17 @@ class PublicApiController extends Controller $min = $request->input('min_id'); $max = $request->input('max_id'); $limit = $request->input('limit') ?? 3; + $user = $request->user(); - $filtered = UserFilter::whereUserId(Auth::user()->profile_id) + $key = 'user:last_active_at:id:'.$user->id; + $ttl = now()->addMinutes(5); + Cache::remember($key, $ttl, function() use($user) { + $user->last_active_at = now(); + $user->save(); + return; + }); + + $filtered = UserFilter::whereUserId($user->profile_id) ->whereFilterableType('App\Profile') ->whereIn('filter_type', ['mute', 'block']) ->pluck('filterable_id')->toArray(); @@ -305,6 +314,7 @@ class PublicApiController extends Controller ->whereNotIn('profile_id', $filtered) ->whereLocal(true) ->whereScope('public') + ->where('created_at', '>', now()->subDays(14)) ->orderBy('created_at', 'desc') ->limit($limit) ->get(); @@ -333,6 +343,7 @@ class PublicApiController extends Controller ->with('profile', 'hashtags', 'mentions') ->whereLocal(true) ->whereScope('public') + ->where('created_at', '>', now()->subDays(14)) ->orderBy('created_at', 'desc') ->simplePaginate($limit); } @@ -360,6 +371,15 @@ class PublicApiController extends Controller $min = $request->input('min_id'); $max = $request->input('max_id'); $limit = $request->input('limit') ?? 3; + $user = $request->user(); + + $key = 'user:last_active_at:id:'.$user->id; + $ttl = now()->addMinutes(5); + Cache::remember($key, $ttl, function() use($user) { + $user->last_active_at = now(); + $user->save(); + return; + }); // TODO: Use redis for timelines // $timeline = Timeline::build()->local();