From 8a0e1402ddb34ee8c3d5bae24d05f6b6853a1a93 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Tue, 3 Sep 2019 19:30:13 -0600 Subject: [PATCH] Add UserFilterObserver --- app/Observers/UserFilterObserver.php | 99 ++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 app/Observers/UserFilterObserver.php diff --git a/app/Observers/UserFilterObserver.php b/app/Observers/UserFilterObserver.php new file mode 100644 index 000000000..fa83d690a --- /dev/null +++ b/app/Observers/UserFilterObserver.php @@ -0,0 +1,99 @@ +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); + break; + + case 'block': + UserFilterService::block($userFilter->user_id, $userFilter->filterable_id); + 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); + break; + + case 'block': + UserFilterService::unblock($userFilter->user_id, $userFilter->filterable_id); + break; + } + } +}