Add StatusMentionService, fixes #3026

This commit is contained in:
Daniel Supernault 2021-12-03 20:47:00 -07:00
parent 89d62176cb
commit e5387d6742
No known key found for this signature in database
GPG key ID: 0DEF1C662C9033F7
3 changed files with 29 additions and 4 deletions

View file

@ -0,0 +1,23 @@
<?php
namespace App\Services;
use Illuminate\Support\Facades\Cache;
use App\Mention;
use Illuminate\Support\Str;
class StatusMentionService
{
public static function get($id)
{
return Mention::whereStatusId($id)
->get()
->map(function($mention) {
return AccountService::get($mention->profile_id);
})->filter(function($mention) {
return $mention;
})
->values()
->toArray();
}
}

View file

@ -11,6 +11,7 @@ use App\Services\MediaService;
use App\Services\MediaTagService;
use App\Services\StatusHashtagService;
use App\Services\StatusLabelService;
use App\Services\StatusMentionService;
use App\Services\ProfileService;
use App\Services\PollService;
@ -35,7 +36,7 @@ class StatusStatelessTransformer extends Fractal\TransformerAbstract
'created_at' => $status->created_at->format('c'),
'emojis' => [],
'reblogs_count' => 0,
'favourites_count' => 0,
'favourites_count' => $status->likes_count ?? 0,
'reblogged' => null,
'favourited' => null,
'muted' => null,
@ -48,7 +49,7 @@ class StatusStatelessTransformer extends Fractal\TransformerAbstract
],
'language' => null,
'pinned' => null,
'mentions' => [],
'mentions' => StatusMentionService::get($status->id),
'tags' => [],
'pf_type' => $status->type ?? $status->setType(),
'reply_count' => (int) $status->reply_count,

View file

@ -12,6 +12,7 @@ use App\Services\MediaService;
use App\Services\MediaTagService;
use App\Services\StatusHashtagService;
use App\Services\StatusLabelService;
use App\Services\StatusMentionService;
use App\Services\ProfileService;
use Illuminate\Support\Str;
use App\Services\PollService;
@ -37,7 +38,7 @@ class StatusTransformer extends Fractal\TransformerAbstract
'created_at' => $status->created_at->format('c'),
'emojis' => [],
'reblogs_count' => 0,
'favourites_count' => 0,
'favourites_count' => $status->likes_count ?? 0,
'reblogged' => $status->shared(),
'favourited' => $status->liked(),
'muted' => null,
@ -50,7 +51,7 @@ class StatusTransformer extends Fractal\TransformerAbstract
],
'language' => null,
'pinned' => null,
'mentions' => [],
'mentions' => StatusMentionService::get($status->id),
'tags' => [],
'pf_type' => $status->type ?? $status->setType(),
'reply_count' => (int) $status->reply_count,