Browse Source

Update Controllers, add last_active_at logic

Daniel Supernault 4 years ago
parent
commit
96afc3e781

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

@@ -1320,6 +1320,15 @@ class ApiV1Controller extends Controller
         $min = $request->input('min_id');
         $min = $request->input('min_id');
         $max = $request->input('max_id');
         $max = $request->input('max_id');
         $limit = $request->input('limit') ?? 3;
         $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;
         $pid = $request->user()->profile_id;
 
 
@@ -1424,6 +1433,15 @@ class ApiV1Controller extends Controller
         $min = $request->input('min_id');
         $min = $request->input('min_id');
         $max = $request->input('max_id');
         $max = $request->input('max_id');
         $limit = $request->input('limit') ?? 3;
         $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) {
         if($min || $max) {
             $dir = $min ? '>' : '<';
             $dir = $min ? '>' : '<';
@@ -1452,6 +1470,7 @@ class ApiV1Controller extends Controller
                       ->with('profile', 'hashtags', 'mentions')
                       ->with('profile', 'hashtags', 'mentions')
                       ->where('id', $dir, $id)
                       ->where('id', $dir, $id)
                       ->whereScope('public')
                       ->whereScope('public')
+                      ->where('created_at', '>', now()->subDays(14))
                       ->latest()
                       ->latest()
                       ->limit($limit)
                       ->limit($limit)
                       ->get();
                       ->get();
@@ -1479,6 +1498,7 @@ class ApiV1Controller extends Controller
                       ->whereIn('type', ['photo', 'photo:album', 'video', 'video:album'])
                       ->whereIn('type', ['photo', 'photo:album', 'video', 'video:album'])
                       ->with('profile', 'hashtags', 'mentions')
                       ->with('profile', 'hashtags', 'mentions')
                       ->whereScope('public')
                       ->whereScope('public')
+                      ->where('created_at', '>', now()->subDays(14))
                       ->latest()
                       ->latest()
                       ->simplePaginate($limit);
                       ->simplePaginate($limit);
         }
         }

+ 21 - 1
app/Http/Controllers/PublicApiController.php

@@ -272,8 +272,17 @@ class PublicApiController extends Controller
         $min = $request->input('min_id');
         $min = $request->input('min_id');
         $max = $request->input('max_id');
         $max = $request->input('max_id');
         $limit = $request->input('limit') ?? 3;
         $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;
+        });
 
 
-        $filtered = UserFilter::whereUserId(Auth::user()->profile_id)
+        $filtered = UserFilter::whereUserId($user->profile_id)
                   ->whereFilterableType('App\Profile')
                   ->whereFilterableType('App\Profile')
                   ->whereIn('filter_type', ['mute', 'block'])
                   ->whereIn('filter_type', ['mute', 'block'])
                   ->pluck('filterable_id')->toArray();
                   ->pluck('filterable_id')->toArray();
@@ -305,6 +314,7 @@ class PublicApiController extends Controller
                       ->whereNotIn('profile_id', $filtered)
                       ->whereNotIn('profile_id', $filtered)
                       ->whereLocal(true)
                       ->whereLocal(true)
                       ->whereScope('public')
                       ->whereScope('public')
+                      ->where('created_at', '>', now()->subDays(14))
                       ->orderBy('created_at', 'desc')
                       ->orderBy('created_at', 'desc')
                       ->limit($limit)
                       ->limit($limit)
                       ->get();
                       ->get();
@@ -333,6 +343,7 @@ class PublicApiController extends Controller
                       ->with('profile', 'hashtags', 'mentions')
                       ->with('profile', 'hashtags', 'mentions')
                       ->whereLocal(true)
                       ->whereLocal(true)
                       ->whereScope('public')
                       ->whereScope('public')
+                      ->where('created_at', '>', now()->subDays(14))
                       ->orderBy('created_at', 'desc')
                       ->orderBy('created_at', 'desc')
                       ->simplePaginate($limit);
                       ->simplePaginate($limit);
         }
         }
@@ -360,6 +371,15 @@ class PublicApiController extends Controller
         $min = $request->input('min_id');
         $min = $request->input('min_id');
         $max = $request->input('max_id');
         $max = $request->input('max_id');
         $limit = $request->input('limit') ?? 3;
         $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
         // TODO: Use redis for timelines
         // $timeline = Timeline::build()->local();
         // $timeline = Timeline::build()->local();