mirror of
https://github.com/pixelfed/pixelfed.git
synced 2024-11-30 02:03:16 +00:00
100 lines
1.9 KiB
PHP
100 lines
1.9 KiB
PHP
|
<?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;
|
||
|
}
|
||
|
}
|
||
|
}
|