mirror of
https://github.com/pixelfed/pixelfed.git
synced 2024-11-25 07:45:22 +00:00
Add UserFilterObserver
This commit is contained in:
parent
50d4c05f60
commit
8a0e1402dd
1 changed files with 99 additions and 0 deletions
99
app/Observers/UserFilterObserver.php
Normal file
99
app/Observers/UserFilterObserver.php
Normal file
|
@ -0,0 +1,99 @@
|
|||
<?php
|
||||
|
||||
namespace App\Observers;
|
||||
|
||||
use App\UserFilter;
|
||||
use App\Services\UserFilterService;
|
||||
|
||||
class UserFilterObserver
|
||||
{
|
||||
/**
|
||||
* 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);
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue