chore(approval, likes): use subscribers (#3577)

* chore: use subscribers

* Apply fixes from StyleCI

* Un-static

Co-authored-by: StyleCI Bot <bot@styleci.io>
This commit is contained in:
Ian Morland 2022-08-02 11:27:26 +01:00 committed by GitHub
parent 737783a8a8
commit 237076e5b7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 37 additions and 14 deletions

View File

@ -10,12 +10,10 @@
use Flarum\Api\Serializer\BasicDiscussionSerializer;
use Flarum\Api\Serializer\PostSerializer;
use Flarum\Approval\Access;
use Flarum\Approval\Event\PostWasApproved;
use Flarum\Approval\Listener;
use Flarum\Discussion\Discussion;
use Flarum\Extend;
use Flarum\Post\CommentPost;
use Flarum\Post\Event\Saving;
use Flarum\Post\Post;
use Flarum\Tags\Tag;
@ -50,9 +48,8 @@ return [
new Extend\Locales(__DIR__.'/locale'),
(new Extend\Event())
->listen(Saving::class, [Listener\ApproveContent::class, 'approvePost'])
->listen(Saving::class, [Listener\UnapproveNewContent::class, 'unapproveNewPosts'])
->listen(PostWasApproved::class, [Listener\ApproveContent::class, 'approveDiscussion']),
->subscribe(Listener\ApproveContent::class)
->subscribe(Listener\UnapproveNewContent::class),
(new Extend\Policy())
->modelPolicy(Tag::class, Access\TagPolicy::class),

View File

@ -11,13 +11,23 @@ namespace Flarum\Approval\Listener;
use Flarum\Approval\Event\PostWasApproved;
use Flarum\Post\Event\Saving;
use Illuminate\Contracts\Events\Dispatcher;
class ApproveContent
{
/**
* @param Dispatcher $events
*/
public function subscribe(Dispatcher $events)
{
$events->listen(Saving::class, [$this, 'approvePost']);
$events->listen(PostWasApproved::class, [$this, 'approveDiscussion']);
}
/**
* @param Saving $event
*/
public static function approvePost(Saving $event)
public function approvePost(Saving $event)
{
$attributes = $event->data['attributes'];
$post = $event->post;
@ -40,7 +50,7 @@ class ApproveContent
/**
* @param PostWasApproved $event
*/
public static function approveDiscussion(PostWasApproved $event)
public function approveDiscussion(PostWasApproved $event)
{
$post = $event->post;
$discussion = $post->discussion;

View File

@ -13,13 +13,22 @@ use Flarum\Discussion\Discussion;
use Flarum\Flags\Flag;
use Flarum\Post\CommentPost;
use Flarum\Post\Event\Saving;
use Illuminate\Contracts\Events\Dispatcher;
class UnapproveNewContent
{
/**
* @param Dispatcher $events
*/
public function subscribe(Dispatcher $events)
{
$events->listen(Saving::class, [$this, 'unapproveNewPosts']);
}
/**
* @param Saving $event
*/
public static function unapproveNewPosts(Saving $event)
public function unapproveNewPosts(Saving $event)
{
$post = $event->post;

View File

@ -17,8 +17,6 @@ use Flarum\Likes\Event\PostWasLiked;
use Flarum\Likes\Event\PostWasUnliked;
use Flarum\Likes\Notification\PostLikedBlueprint;
use Flarum\Likes\Query\LikedByFilter;
use Flarum\Post\Event\Deleted;
use Flarum\Post\Event\Saving;
use Flarum\Post\Filter\PostFilterer;
use Flarum\Post\Post;
use Flarum\User\User;
@ -60,8 +58,7 @@ return [
(new Extend\Event())
->listen(PostWasLiked::class, Listener\SendNotificationWhenPostIsLiked::class)
->listen(PostWasUnliked::class, Listener\SendNotificationWhenPostIsUnliked::class)
->listen(Deleted::class, [Listener\SaveLikesToDatabase::class, 'whenPostIsDeleted'])
->listen(Saving::class, [Listener\SaveLikesToDatabase::class, 'whenPostIsSaving']),
->subscribe(Listener\SaveLikesToDatabase::class),
(new Extend\Filter(PostFilterer::class))
->addFilter(LikedByFilter::class),

View File

@ -13,13 +13,23 @@ use Flarum\Likes\Event\PostWasLiked;
use Flarum\Likes\Event\PostWasUnliked;
use Flarum\Post\Event\Deleted;
use Flarum\Post\Event\Saving;
use Illuminate\Contracts\Events\Dispatcher;
class SaveLikesToDatabase
{
/**
* @param Dispatcher $events
*/
public function subscribe(Dispatcher $events)
{
$events->listen(Saving::class, [$this, 'whenPostIsSaving']);
$events->listen(Deleted::class, [$this, 'whenPostIsDeleted']);
}
/**
* @param Saving $event
*/
public static function whenPostIsSaving(Saving $event)
public function whenPostIsSaving(Saving $event)
{
$post = $event->post;
$data = $event->data;
@ -47,7 +57,7 @@ class SaveLikesToDatabase
/**
* @param Deleted $event
*/
public static function whenPostIsDeleted(Deleted $event)
public function whenPostIsDeleted(Deleted $event)
{
$event->post->likes()->detach();
}