1
0
mirror of https://github.com/flarum/core.git synced 2025-08-05 16:07:34 +02:00

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
5 changed files with 37 additions and 14 deletions

View File

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

View File

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

View File

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

View File

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

View File

@@ -13,13 +13,23 @@ use Flarum\Likes\Event\PostWasLiked;
use Flarum\Likes\Event\PostWasUnliked; use Flarum\Likes\Event\PostWasUnliked;
use Flarum\Post\Event\Deleted; use Flarum\Post\Event\Deleted;
use Flarum\Post\Event\Saving; use Flarum\Post\Event\Saving;
use Illuminate\Contracts\Events\Dispatcher;
class SaveLikesToDatabase 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 * @param Saving $event
*/ */
public static function whenPostIsSaving(Saving $event) public function whenPostIsSaving(Saving $event)
{ {
$post = $event->post; $post = $event->post;
$data = $event->data; $data = $event->data;
@@ -47,7 +57,7 @@ class SaveLikesToDatabase
/** /**
* @param Deleted $event * @param Deleted $event
*/ */
public static function whenPostIsDeleted(Deleted $event) public function whenPostIsDeleted(Deleted $event)
{ {
$event->post->likes()->detach(); $event->post->likes()->detach();
} }