Update APIs

This commit is contained in:
Toby Zerner 2015-06-18 12:45:44 +09:30
parent 35ca32a733
commit 0892a979be

View File

@ -1,42 +1,37 @@
<?php namespace Flarum\Sticky; <?php namespace Flarum\Sticky;
use Flarum\Support\ServiceProvider; use Flarum\Support\ServiceProvider;
use Flarum\Extend\EventSubscribers; use Flarum\Extend;
use Flarum\Extend\ForumAssets;
use Flarum\Extend\PostType;
use Flarum\Extend\SerializeAttributes;
use Flarum\Extend\DiscussionGambit;
use Flarum\Extend\NotificationType;
use Flarum\Extend\Permission;
class StickyServiceProvider extends ServiceProvider class StickyServiceProvider extends ServiceProvider
{ {
public function boot() public function boot()
{ {
$this->extend( $this->extend(
new EventSubscribers([ new Extend\EventSubscriber([
'Flarum\Sticky\Handlers\StickySaver', 'Flarum\Sticky\Handlers\StickySaver',
'Flarum\Sticky\Handlers\StickySearchModifier', 'Flarum\Sticky\Handlers\StickySearchModifier',
'Flarum\Sticky\Handlers\DiscussionStickiedNotifier' 'Flarum\Sticky\Handlers\DiscussionStickiedNotifier'
]), ]),
new ForumAssets([ (new Extend\ForumClient())
__DIR__.'/../js/dist/extension.js', ->assets([
__DIR__.'/../less/sticky.less' __DIR__.'/../js/dist/extension.js',
]), __DIR__.'/../less/sticky.less'
]),
new PostType('Flarum\Sticky\DiscussionStickiedPost'), new Extend\PostType('Flarum\Sticky\DiscussionStickiedPost'),
new SerializeAttributes('Flarum\Api\Serializers\DiscussionSerializer', function (&$attributes, $model, $serializer) { (new Extend\ApiSerializer('Flarum\Api\Serializers\DiscussionSerializer'))
$attributes['isSticky'] = (bool) $model->is_sticky; ->attributes(function (&$attributes, $model, $user) {
$attributes['canSticky'] = (bool) $model->can($serializer->actor->getUser(), 'sticky'); $attributes['isSticky'] = (bool) $model->is_sticky;
}), $attributes['canSticky'] = (bool) $model->can($user, 'sticky');
}),
new DiscussionGambit('Flarum\Sticky\StickyGambit'), new Extend\DiscussionGambit('Flarum\Sticky\StickyGambit'),
(new NotificationType('Flarum\Sticky\DiscussionStickiedNotification', 'Flarum\Api\Serializers\DiscussionBasicSerializer'))->enableByDefault('alert'), (new Extend\NotificationType('Flarum\Sticky\DiscussionStickiedNotification', 'Flarum\Api\Serializers\DiscussionBasicSerializer'))
->enableByDefault('alert')
new Permission('discussion.sticky')
); );
} }
} }