From 867210ab642d9f4f052f590a03fea9587a40644a Mon Sep 17 00:00:00 2001 From: Toby Zerner Date: Thu, 18 Jun 2015 12:45:37 +0930 Subject: [PATCH] Update APIs --- .../mentions/src/MentionsServiceProvider.php | 74 +++++++++---------- 1 file changed, 36 insertions(+), 38 deletions(-) diff --git a/extensions/mentions/src/MentionsServiceProvider.php b/extensions/mentions/src/MentionsServiceProvider.php index 5ebbb2b98..850a0066d 100644 --- a/extensions/mentions/src/MentionsServiceProvider.php +++ b/extensions/mentions/src/MentionsServiceProvider.php @@ -1,14 +1,7 @@ loadViewsFrom(__DIR__.'/../views', 'mentions'); $this->extend( - new EventSubscribers([ + new Extend\EventSubscriber([ 'Flarum\Mentions\Handlers\PostMentionsMetadataUpdater', 'Flarum\Mentions\Handlers\UserMentionsMetadataUpdater' ]), - new ForumAssets([ - __DIR__.'/../js/dist/extension.js', - __DIR__.'/../less/mentions.less' - ]), + (new Extend\ForumClient()) + ->assets([ + __DIR__.'/../js/dist/extension.js', + __DIR__.'/../less/mentions.less' + ]), - new Relationship('Flarum\Core\Models\Post', 'mentionedBy', function ($model) { - return $model->belongsToMany('Flarum\Core\Models\Post', 'mentions_posts', 'mentions_id'); - }), + (new Extend\Model('Flarum\Core\Models\Post')) + ->belongsToMany('mentionedBy', 'Flarum\Core\Models\Post', 'mentions_posts', 'mentions_id') + ->belongsToMany('mentionsPosts', 'Flarum\Core\Models\Post', 'mentions_posts', 'post_id', 'mentions_id') + ->belongsToMany('mentionsUsers', 'Flarum\Core\Models\User', 'mentions_users', 'post_id', 'mentions_id'), - new Relationship('Flarum\Core\Models\Post', 'mentionsPosts', function ($model) { - return $model->belongsToMany('Flarum\Core\Models\Post', 'mentions_posts', 'post_id', 'mentions_id'); - }), + (new Extend\ApiSerializer('Flarum\Api\Serializers\PostSerializer')) + ->hasMany('mentionedBy', 'Flarum\Api\Serializers\PostBasicSerializer') + ->hasMany('mentionsPosts', 'Flarum\Api\Serializers\PostBasicSerializer') + ->hasMany('mentionsUsers', 'Flarum\Api\Serializers\UserBasicSerializer'), - new Relationship('Flarum\Core\Models\Post', 'mentionsUsers', function ($model) { - return $model->belongsToMany('Flarum\Core\Models\User', 'mentions_users', 'post_id', 'mentions_id'); - }), + (new Extend\ApiAction('Flarum\Api\Actions\Discussions\ShowAction')) + ->addInclude('posts.mentionedBy') + ->addInclude('posts.mentionedBy.user') + ->addInclude('posts.mentionsPosts') + ->addInclude('posts.mentionsPosts.user') + ->addInclude('posts.mentionsUsers'), - new SerializeRelationship('Flarum\Api\Serializers\PostSerializer', 'hasMany', 'mentionedBy', 'Flarum\Api\Serializers\PostBasicSerializer'), + (new Extend\ApiAction([ + 'Flarum\Api\Actions\Posts\IndexAction', + 'Flarum\Api\Actions\Posts\ShowAction', + ])) + ->addInclude('mentionedBy') + ->addInclude('mentionedBy.user'), - new SerializeRelationship('Flarum\Api\Serializers\PostSerializer', 'hasMany', 'mentionsPosts', 'Flarum\Api\Serializers\PostBasicSerializer'), + (new Extend\ApiAction('Flarum\Api\Actions\Posts\CreateAction')) + ->addInclude('mentionsPosts') + ->addInclude('mentionsPosts.mentionedBy'), - new SerializeRelationship('Flarum\Api\Serializers\PostSerializer', 'hasMany', 'mentionsUsers', 'Flarum\Api\Serializers\UserBasicSerializer'), + new Extend\Formatter('postMentions', 'Flarum\Mentions\PostMentionsFormatter'), - new ApiInclude('discussions.show', ['posts.mentionedBy', 'posts.mentionedBy.user', 'posts.mentionsPosts', 'posts.mentionsPosts.user', 'posts.mentionsUsers'], true), + new Extend\Formatter('userMentions', 'Flarum\Mentions\UserMentionsFormatter'), - new ApiInclude(['posts.index', 'posts.show'], ['mentionedBy', 'mentionedBy.user'], true), + new Extend\ActivityType('Flarum\Mentions\PostMentionedActivity', 'Flarum\Api\Serializers\PostBasicSerializer'), - new ApiInclude(['posts.create'], ['mentionsPosts', 'mentionsPosts.mentionedBy'], true), + new Extend\ActivityType('Flarum\Mentions\UserMentionedActivity', 'Flarum\Api\Serializers\PostBasicSerializer'), - new Formatter('postMentions', 'Flarum\Mentions\PostMentionsFormatter'), - - new Formatter('userMentions', 'Flarum\Mentions\UserMentionsFormatter'), - - new ActivityType('Flarum\Mentions\PostMentionedActivity', 'Flarum\Api\Serializers\PostBasicSerializer'), - - new ActivityType('Flarum\Mentions\UserMentionedActivity', 'Flarum\Api\Serializers\PostBasicSerializer'), - - (new NotificationType('Flarum\Mentions\PostMentionedNotification', 'Flarum\Api\Serializers\PostBasicSerializer')) + (new Extend\NotificationType('Flarum\Mentions\PostMentionedNotification', 'Flarum\Api\Serializers\PostBasicSerializer')) ->enableByDefault('alert'), - (new NotificationType('Flarum\Mentions\UserMentionedNotification', 'Flarum\Api\Serializers\PostBasicSerializer')) + (new Extend\NotificationType('Flarum\Mentions\UserMentionedNotification', 'Flarum\Api\Serializers\PostBasicSerializer')) ->enableByDefault('alert') ); }