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->visibility = $scope;
$reply->save(); $reply->save();
$status->reply_count++;
$status->save();
return $reply; return $reply;
}); });
StatusService::del($status->id); StatusService::del($status->id);
NewStatusPipeline::dispatch($reply, false); NewStatusPipeline::dispatch($reply);
CommentPipeline::dispatch($status, $reply); CommentPipeline::dispatch($status, $reply);
if ($request->ajax()) { if ($request->ajax()) {

View file

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