From 72a676ddfd5c52561f323367759fa03d5e5a406e Mon Sep 17 00:00:00 2001 From: Toby Zerner Date: Wed, 20 May 2015 12:30:57 +0930 Subject: [PATCH] Update for new notifications API --- .../tags/src/CategoriesServiceProvider.php | 2 +- .../tags/src/DiscussionMovedNotification.php | 24 ++++--------- .../src/Handlers/DiscussionMovedNotifier.php | 35 +++++++------------ 3 files changed, 21 insertions(+), 40 deletions(-) diff --git a/extensions/tags/src/CategoriesServiceProvider.php b/extensions/tags/src/CategoriesServiceProvider.php index 7988de644..8e67f8700 100644 --- a/extensions/tags/src/CategoriesServiceProvider.php +++ b/extensions/tags/src/CategoriesServiceProvider.php @@ -36,7 +36,7 @@ class CategoriesServiceProvider extends ServiceProvider new DiscussionGambit('Flarum\Categories\CategoryGambit'), - (new NotificationType('Flarum\Categories\DiscussionMovedNotification'))->enableByDefault('alert'), + (new NotificationType('Flarum\Categories\DiscussionMovedNotification', 'Flarum\Api\Serializers\DiscussionBasicSerializer'))->enableByDefault('alert'), new Relationship('Flarum\Core\Models\Discussion', 'belongsTo', 'category', 'Flarum\Categories\Category'), diff --git a/extensions/tags/src/DiscussionMovedNotification.php b/extensions/tags/src/DiscussionMovedNotification.php index d10eade16..10a82ba84 100644 --- a/extensions/tags/src/DiscussionMovedNotification.php +++ b/extensions/tags/src/DiscussionMovedNotification.php @@ -1,39 +1,29 @@ discussion = $discussion; - $this->sender = $sender; $this->post = $post; } public function getSubject() { - return $this->discussion; + return $this->post->discussion; } public function getSender() { - return $this->sender; + return $this->post->user; } - public function getAlertData() + public function getData() { - return ['postNumber' => $this->post->number]; + return ['postNumber' => (int) $this->post->number]; } public static function getType() diff --git a/extensions/tags/src/Handlers/DiscussionMovedNotifier.php b/extensions/tags/src/Handlers/DiscussionMovedNotifier.php index 43a25173f..cb7723902 100755 --- a/extensions/tags/src/Handlers/DiscussionMovedNotifier.php +++ b/extensions/tags/src/Handlers/DiscussionMovedNotifier.php @@ -3,16 +3,16 @@ use Flarum\Categories\DiscussionMovedPost; use Flarum\Categories\DiscussionMovedNotification; use Flarum\Categories\Events\DiscussionWasMoved; -use Flarum\Core\Notifications\Notifier; +use Flarum\Core\Notifications\NotificationSyncer; use Illuminate\Contracts\Events\Dispatcher; class DiscussionMovedNotifier { - protected $notifier; + protected $notifications; - public function __construct(Notifier $notifier) + public function __construct(NotificationSyncer $notifications) { - $this->notifier = $notifier; + $this->notifications = $notifications; } /** @@ -27,28 +27,19 @@ class DiscussionMovedNotifier public function whenDiscussionWasMoved(DiscussionWasMoved $event) { - $post = $this->createPost($event); - - $post = $event->discussion->addPost($post); - - if ($event->discussion->start_user_id !== $event->user->id) { - $notification = new DiscussionMovedNotification($event->discussion, $post->user, $post); - - if ($post->exists) { - $this->notifier->send($notification, [$post->discussion->startUser]); - } else { - $this->notifier->retract($notification); - } - } - } - - protected function createPost(DiscussionWasMoved $event) - { - return DiscussionMovedPost::reply( + $post = DiscussionMovedPost::reply( $event->discussion->id, $event->user->id, $event->oldCategoryId, $event->discussion->category_id ); + + $post = $event->discussion->addPost($post); + + if ($event->discussion->start_user_id !== $event->user->id) { + $notification = new DiscussionMovedNotification($post); + + $this->notifications->sync($notification, $post->exists ? [$event->discussion->startUser] : []); + } } }