diff --git a/extensions/flags/extend.php b/extensions/flags/extend.php index 6beab60fc..259c42cc0 100644 --- a/extensions/flags/extend.php +++ b/extensions/flags/extend.php @@ -8,12 +8,14 @@ */ use Flarum\Api\Event\Serializing; -use Flarum\Event\ConfigureModelDates; use Flarum\Extend; use Flarum\Flags\Api\Controller\CreateFlagController; use Flarum\Flags\Api\Controller\DeleteFlagsController; use Flarum\Flags\Api\Controller\ListFlagsController; +use Flarum\Flags\Flag; use Flarum\Flags\Listener; +use Flarum\Post\Post; +use Flarum\User\User; use Illuminate\Contracts\Events\Dispatcher; return [ @@ -29,8 +31,13 @@ return [ ->post('/flags', 'flags.create', CreateFlagController::class) ->delete('/posts/{id}/flags', 'flags.delete', DeleteFlagsController::class), + (new Extend\Model(User::class)) + ->dateAttribute('read_flags_at'), + + (new Extend\Model(Post::class)) + ->hasMany('flags', Flag::class, 'post_id'), + function (Dispatcher $events) { - $events->listen(ConfigureModelDates::class, Listener\AddFlagsApiDates::class); $events->listen(Serializing::class, Listener\AddFlagsApiAttributes::class); $events->subscribe(Listener\AddPostFlagsRelationship::class); diff --git a/extensions/flags/src/Listener/AddFlagsApiDates.php b/extensions/flags/src/Listener/AddFlagsApiDates.php deleted file mode 100755 index 95ad16531..000000000 --- a/extensions/flags/src/Listener/AddFlagsApiDates.php +++ /dev/null @@ -1,23 +0,0 @@ -isModel(User::class)) { - $event->dates[] = 'read_flags_at'; - } - } -} diff --git a/extensions/flags/src/Listener/AddPostFlagsRelationship.php b/extensions/flags/src/Listener/AddPostFlagsRelationship.php index b7a6262df..70a775fc6 100755 --- a/extensions/flags/src/Listener/AddPostFlagsRelationship.php +++ b/extensions/flags/src/Listener/AddPostFlagsRelationship.php @@ -14,12 +14,9 @@ use Flarum\Api\Event\WillGetData; use Flarum\Api\Event\WillSerializeData; use Flarum\Api\Serializer\PostSerializer; use Flarum\Event\GetApiRelationship; -use Flarum\Event\GetModelRelationship; use Flarum\Flags\Api\Controller\CreateFlagController; use Flarum\Flags\Api\Serializer\FlagSerializer; -use Flarum\Flags\Flag; use Flarum\Post\Event\Deleted; -use Flarum\Post\Post; use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Database\Eloquent\Collection; @@ -30,24 +27,12 @@ class AddPostFlagsRelationship */ public function subscribe(Dispatcher $events) { - $events->listen(GetModelRelationship::class, [$this, 'getModelRelationship']); $events->listen(Deleted::class, [$this, 'postWasDeleted']); $events->listen(GetApiRelationship::class, [$this, 'getApiRelationship']); $events->listen(WillGetData::class, [$this, 'includeFlagsRelationship']); $events->listen(WillSerializeData::class, [$this, 'prepareApiData']); } - /** - * @param GetModelRelationship $event - * @return \Illuminate\Database\Eloquent\Relations\HasMany|null - */ - public function getModelRelationship(GetModelRelationship $event) - { - if ($event->isRelationship(Post::class, 'flags')) { - return $event->model->hasMany(Flag::class, 'post_id'); - } - } - /** * @param Deleted $event */