1
0
Fork 1
mirror of https://github.com/pixelfed/pixelfed.git synced 2024-12-25 01:05:36 +00:00

Update CommentPipeline, move reply_count calculation to comment pipeline job and improve count calculation

This commit is contained in:
Daniel Supernault 2021-12-10 21:55:42 -07:00
parent 945a7e49f5
commit b6b0837f49
No known key found for this signature in database
GPG key ID: 0DEF1C662C9033F7
2 changed files with 13 additions and 9 deletions

View file

@ -73,14 +73,11 @@ class CommentController extends Controller
$reply->visibility = $scope;
$reply->save();
$status->reply_count++;
$status->save();
return $reply;
});
StatusService::del($status->id);
NewStatusPipeline::dispatch($reply, false);
NewStatusPipeline::dispatch($reply);
CommentPipeline::dispatch($status, $reply);
if ($request->ajax()) {
@ -89,11 +86,11 @@ class CommentController extends Controller
$entity = new Fractal\Resource\Item($reply, new StatusTransformer());
$entity = $fractal->createData($entity)->toArray();
$response = [
'code' => 200,
'msg' => 'Comment saved',
'username' => $profile->username,
'url' => $reply->url(),
'profile' => $profile->url(),
'code' => 200,
'msg' => 'Comment saved',
'username' => $profile->username,
'url' => $reply->url(),
'profile' => $profile->url(),
'comment' => $reply->caption,
'entity' => $entity,
];

View file

@ -8,6 +8,7 @@ use App\{
UserFilter
};
use App\Services\NotificationService;
use App\Services\StatusService;
use DB, Cache, Log;
use Illuminate\Support\Facades\Redis;
@ -58,6 +59,11 @@ class CommentPipeline implements ShouldQueue
$target = $status->profile;
$actor = $comment->profile;
DB::transaction(function() use($status) {
$status->reply_count = DB::table('statuses')->whereInReplyToId($status->id)->count();
$status->save();
});
if ($actor->id === $target->id || $status->comments_disabled == true) {
return true;
}
@ -85,6 +91,7 @@ class CommentPipeline implements ShouldQueue
NotificationService::setNotification($notification);
NotificationService::set($notification->profile_id, $notification->id);
StatusService::del($status->id);
});
}
}