Quellcode durchsuchen

Update HashtagController, improve trending hashtag endpoint

Daniel Supernault vor 2 Jahren
Ursprung
Commit
4873c7dd4b
1 geänderte Dateien mit 16 neuen und 6 gelöschten Zeilen
  1. 16 6
      app/Http/Controllers/DiscoverController.php

+ 16 - 6
app/Http/Controllers/DiscoverController.php

@@ -181,22 +181,32 @@ class DiscoverController extends Controller
 	{
 	{
 		abort_if(!$request->user(), 403);
 		abort_if(!$request->user(), 403);
 
 
-		$res = Cache::remember('api:discover:v1.1:trending:hashtags', 3600, function() {
+		$res = Cache::remember('api:discover:v1.1:trending:hashtags', 43200, function() {
+			$minId = StatusHashtag::where('created_at', '>', now()->subDays(14))->first();
+			if(!$minId) {
+				return [];
+			}
 			return StatusHashtag::select('hashtag_id', \DB::raw('count(*) as total'))
 			return StatusHashtag::select('hashtag_id', \DB::raw('count(*) as total'))
+				->where('id', '>', $minId->id)
 				->groupBy('hashtag_id')
 				->groupBy('hashtag_id')
 				->orderBy('total','desc')
 				->orderBy('total','desc')
-				->where('created_at', '>', now()->subDays(90))
-				->take(9)
+				->take(20)
 				->get()
 				->get()
 				->map(function($h) {
 				->map(function($h) {
-					$hashtag = $h->hashtag;
+					$hashtag = Hashtag::find($h->hashtag_id);
+					if(!$hashtag) {
+						return;
+					}
 					return [
 					return [
-						'id' => $hashtag->id,
+						'id' => $h->hashtag_id,
 						'total' => $h->total,
 						'total' => $h->total,
 						'name' => '#'.$hashtag->name,
 						'name' => '#'.$hashtag->name,
+						'hashtag' => $hashtag->name,
 						'url' => $hashtag->url()
 						'url' => $hashtag->url()
 					];
 					];
-				});
+				})
+				->filter()
+				->values();
 		});
 		});
 		return $res;
 		return $res;
 	}
 	}