123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- <?php
- namespace App\Observers;
- use App\UserFilter;
- use App\Services\UserFilterService;
- use App\Jobs\HomeFeedPipeline\FeedFollowPipeline;
- use App\Jobs\HomeFeedPipeline\FeedUnfollowPipeline;
- class UserFilterObserver
- {
- /**
- * Handle events after all transactions are committed.
- *
- * @var bool
- */
- public $afterCommit = true;
- /**
- * Handle the user filter "created" event.
- *
- * @param \App\UserFilter $userFilter
- * @return void
- */
- public function created(UserFilter $userFilter)
- {
- $this->filterCreate($userFilter);
- }
- /**
- * Handle the user filter "updated" event.
- *
- * @param \App\UserFilter $userFilter
- * @return void
- */
- public function updated(UserFilter $userFilter)
- {
- $this->filterCreate($userFilter);
- }
- /**
- * Handle the user filter "deleted" event.
- *
- * @param \App\UserFilter $userFilter
- * @return void
- */
- public function deleted(UserFilter $userFilter)
- {
- $this->filterDelete($userFilter);
- }
- /**
- * Handle the user filter "restored" event.
- *
- * @param \App\UserFilter $userFilter
- * @return void
- */
- public function restored(UserFilter $userFilter)
- {
- $this->filterCreate($userFilter);
- }
- /**
- * Handle the user filter "force deleted" event.
- *
- * @param \App\UserFilter $userFilter
- * @return void
- */
- public function forceDeleted(UserFilter $userFilter)
- {
- $this->filterDelete($userFilter);
- }
- protected function filterCreate(UserFilter $userFilter)
- {
- if($userFilter->filterable_type !== 'App\Profile') {
- return;
- }
- switch ($userFilter->filter_type) {
- case 'mute':
- UserFilterService::mute($userFilter->user_id, $userFilter->filterable_id);
- FeedUnfollowPipeline::dispatch($userFilter->user_id, $userFilter->filterable_id)->onQueue('feed');
- break;
-
- case 'block':
- UserFilterService::block($userFilter->user_id, $userFilter->filterable_id);
- FeedUnfollowPipeline::dispatch($userFilter->user_id, $userFilter->filterable_id)->onQueue('feed');
- break;
- }
- }
- protected function filterDelete(UserFilter $userFilter)
- {
- if($userFilter->filterable_type !== 'App\Profile') {
- return;
- }
- switch ($userFilter->filter_type) {
- case 'mute':
- UserFilterService::unmute($userFilter->user_id, $userFilter->filterable_id);
- FeedFollowPipeline::dispatch($userFilter->user_id, $userFilter->filterable_id)->onQueue('feed');
- break;
-
- case 'block':
- UserFilterService::unblock($userFilter->user_id, $userFilter->filterable_id);
- FeedFollowPipeline::dispatch($userFilter->user_id, $userFilter->filterable_id)->onQueue('feed');
- break;
- }
- }
- }
|