Update StatusHashtagService, use more efficient cached count

pull/4989/head
Daniel Supernault 2024-03-07 02:37:35 -07:00
rodzic e68fe64ffc
commit 592c84125c
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 23740873EE6F76A1
1 zmienionych plików z 78 dodań i 77 usunięć

Wyświetl plik

@ -2,17 +2,15 @@
namespace App\Services;
use Cache;
use Illuminate\Support\Facades\Redis;
use App\{Status, StatusHashtag};
use App\Transformer\Api\StatusHashtagTransformer;
use App\Hashtag;
use App\Status;
use App\StatusHashtag;
use App\Transformer\Api\HashtagTransformer;
use League\Fractal;
use League\Fractal\Serializer\ArraySerializer;
use League\Fractal\Pagination\IlluminatePaginatorAdapter;
class StatusHashtagService {
class StatusHashtagService
{
const CACHE_KEY = 'pf:services:status-hashtag:collection:';
public static function get($id, $page = 1, $stop = 9)
@ -55,6 +53,7 @@ class StatusHashtagService {
foreach ($ids as $key) {
self::set($id, $key);
}
return $ids;
}
@ -70,11 +69,12 @@ class StatusHashtagService {
public static function count($id)
{
$key = 'pf:services:status-hashtag:count:' . $id;
$ttl = now()->addMinutes(5);
return Cache::remember($key, $ttl, function() use($id) {
return StatusHashtag::whereHashtagId($id)->has('media')->count();
});
$cc = Hashtag::find($id);
if (! $cc) {
return 0;
}
return $cc->cached_count ?? 0;
}
public static function getStatus($statusId, $hashtagId)
@ -92,6 +92,7 @@ class StatusHashtagService {
$fractal = new Fractal\Manager();
$fractal->setSerializer(new ArraySerializer());
$resource = new Fractal\Resource\Collection($status->hashtags, new HashtagTransformer());
return $fractal->createData($resource)->toArray();
}
}