From 1cd96ced2a8d81110973d31df209a9c958bf57eb Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 11 Nov 2023 05:47:52 -0700 Subject: [PATCH] Update StatusHashtagObserver --- app/Observers/StatusHashtagObserver.php | 32 +++++++++++++------------ 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/app/Observers/StatusHashtagObserver.php b/app/Observers/StatusHashtagObserver.php index fa38ea3c3..569120a20 100644 --- a/app/Observers/StatusHashtagObserver.php +++ b/app/Observers/StatusHashtagObserver.php @@ -5,32 +5,31 @@ namespace App\Observers; use DB; use App\StatusHashtag; use App\Services\StatusHashtagService; +use App\Jobs\HomeFeedPipeline\HashtagInsertFanoutPipeline; +use App\Jobs\HomeFeedPipeline\HashtagRemoveFanoutPipeline; +use Illuminate\Contracts\Events\ShouldHandleEventsAfterCommit; -class StatusHashtagObserver +class StatusHashtagObserver implements ShouldHandleEventsAfterCommit { - /** - * Handle events after all transactions are committed. - * - * @var bool - */ - public $afterCommit = true; - /** * Handle the notification "created" event. * - * @param \App\Notification $notification + * @param \App\StatusHashtag $hashtag * @return void */ public function created(StatusHashtag $hashtag) { StatusHashtagService::set($hashtag->hashtag_id, $hashtag->status_id); DB::table('hashtags')->where('id', $hashtag->hashtag_id)->increment('cached_count'); + if($hashtag->status_visibility && $hashtag->status_visibility === 'public') { + HashtagInsertFanoutPipeline::dispatch($hashtag)->onQueue('feed'); + } } /** * Handle the notification "updated" event. * - * @param \App\Notification $notification + * @param \App\StatusHashtag $hashtag * @return void */ public function updated(StatusHashtag $hashtag) @@ -39,21 +38,24 @@ class StatusHashtagObserver } /** - * Handle the notification "deleted" event. + * Handle the notification "deleting" event. * - * @param \App\Notification $notification + * @param \App\StatusHashtag $hashtag * @return void */ - public function deleted(StatusHashtag $hashtag) + public function deleting(StatusHashtag $hashtag) { StatusHashtagService::del($hashtag->hashtag_id, $hashtag->status_id); DB::table('hashtags')->where('id', $hashtag->hashtag_id)->decrement('cached_count'); + if($hashtag->status_visibility && $hashtag->status_visibility === 'public') { + HashtagRemoveFanoutPipeline::dispatch($hashtag->status_id, $hashtag->hashtag_id)->onQueue('feed'); + } } /** * Handle the notification "restored" event. * - * @param \App\Notification $notification + * @param \App\StatusHashtag $hashtag * @return void */ public function restored(StatusHashtag $hashtag) @@ -64,7 +66,7 @@ class StatusHashtagObserver /** * Handle the notification "force deleted" event. * - * @param \App\Notification $notification + * @param \App\StatusHashtag $hashtag * @return void */ public function forceDeleted(StatusHashtag $hashtag)