mirror of
https://github.com/flarum/framework.git
synced 2025-02-01 10:27:13 +08:00
Use new extenders (#36)
This commit is contained in:
parent
032ad4aadc
commit
2ef3bf411f
|
@ -7,8 +7,9 @@
|
|||
* LICENSE file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
use Flarum\Api\Event\Serializing;
|
||||
use Flarum\Api\Serializer\BasicDiscussionSerializer;
|
||||
use Flarum\Api\Serializer\DiscussionSerializer;
|
||||
use Flarum\Discussion\Discussion;
|
||||
use Flarum\Discussion\Event\Saving;
|
||||
use Flarum\Discussion\Event\Searching;
|
||||
use Flarum\Event\ConfigureDiscussionGambits;
|
||||
|
@ -21,7 +22,6 @@ use Flarum\Post\Event\Restored;
|
|||
use Flarum\Subscriptions\Gambit\SubscriptionGambit;
|
||||
use Flarum\Subscriptions\Listener;
|
||||
use Flarum\Subscriptions\Notification\NewPostBlueprint;
|
||||
use Illuminate\Contracts\Events\Dispatcher;
|
||||
|
||||
return [
|
||||
(new Extend\Frontend('forum'))
|
||||
|
@ -37,23 +37,25 @@ return [
|
|||
(new Extend\Notification())
|
||||
->type(NewPostBlueprint::class, BasicDiscussionSerializer::class, ['alert', 'email']),
|
||||
|
||||
function (Dispatcher $events) {
|
||||
$events->listen(Serializing::class, Listener\AddDiscussionSubscriptionAttribute::class);
|
||||
$events->listen(Saving::class, Listener\SaveSubscriptionToDatabase::class);
|
||||
(new Extend\ApiSerializer(DiscussionSerializer::class))
|
||||
->attribute('subscription', function (DiscussionSerializer $serializer, Discussion $discussion) {
|
||||
if ($state = $discussion->state) {
|
||||
return $state->subscription ?: false;
|
||||
}
|
||||
}),
|
||||
|
||||
$events->listen(ConfigureDiscussionGambits::class, function (ConfigureDiscussionGambits $event) {
|
||||
(new Extend\Event())
|
||||
->listen(Saving::class, Listener\SaveSubscriptionToDatabase::class)
|
||||
->listen(ConfigureDiscussionGambits::class, function (ConfigureDiscussionGambits $event) {
|
||||
$event->gambits->add(SubscriptionGambit::class);
|
||||
});
|
||||
$events->listen(Searching::class, Listener\FilterDiscussionListBySubscription::class);
|
||||
|
||||
$events->listen(Posted::class, Listener\SendNotificationWhenReplyIsPosted::class);
|
||||
$events->listen(Hidden::class, Listener\DeleteNotificationWhenPostIsHiddenOrDeleted::class);
|
||||
$events->listen(Restored::class, Listener\RestoreNotificationWhenPostIsRestored::class);
|
||||
$events->listen(Deleted::class, Listener\DeleteNotificationWhenPostIsHiddenOrDeleted::class);
|
||||
|
||||
$events->listen(ConfigureUserPreferences::class, function (ConfigureUserPreferences $event) {
|
||||
})
|
||||
->listen(Searching::class, Listener\FilterDiscussionListBySubscription::class)
|
||||
->listen(Posted::class, Listener\SendNotificationWhenReplyIsPosted::class)
|
||||
->listen(Hidden::class, Listener\DeleteNotificationWhenPostIsHiddenOrDeleted::class)
|
||||
->listen(Restored::class, Listener\RestoreNotificationWhenPostIsRestored::class)
|
||||
->listen(Deleted::class, Listener\DeleteNotificationWhenPostIsHiddenOrDeleted::class)
|
||||
->listen(ConfigureUserPreferences::class, function (ConfigureUserPreferences $event) {
|
||||
$event->add('followAfterReply', 'boolval', false);
|
||||
});
|
||||
$events->listen(Posted::class, Listener\FollowAfterReply::class);
|
||||
}
|
||||
})
|
||||
->listen(Posted::class, Listener\FollowAfterReply::class),
|
||||
];
|
||||
|
|
|
@ -1,24 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Flarum.
|
||||
*
|
||||
* For detailed copyright and license information, please view the
|
||||
* LICENSE file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Flarum\Subscriptions\Listener;
|
||||
|
||||
use Flarum\Api\Event\Serializing;
|
||||
use Flarum\Api\Serializer\DiscussionSerializer;
|
||||
|
||||
class AddDiscussionSubscriptionAttribute
|
||||
{
|
||||
public function handle(Serializing $event)
|
||||
{
|
||||
if ($event->isSerializer(DiscussionSerializer::class)
|
||||
&& ($state = $event->model->state)) {
|
||||
$event->attributes['subscription'] = $state->subscription ?: false;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user