mirror of
https://github.com/flarum/core.git
synced 2025-07-26 03:01:22 +02:00
Use new Model extender
This commit is contained in:
@@ -22,6 +22,8 @@ use Flarum\Post\Event\Hidden;
|
|||||||
use Flarum\Post\Event\Posted;
|
use Flarum\Post\Event\Posted;
|
||||||
use Flarum\Post\Event\Restored;
|
use Flarum\Post\Event\Restored;
|
||||||
use Flarum\Post\Event\Revised;
|
use Flarum\Post\Event\Revised;
|
||||||
|
use Flarum\Post\Post;
|
||||||
|
use Flarum\User\User;
|
||||||
use Illuminate\Contracts\Events\Dispatcher;
|
use Illuminate\Contracts\Events\Dispatcher;
|
||||||
use Illuminate\Contracts\View\Factory;
|
use Illuminate\Contracts\View\Factory;
|
||||||
|
|
||||||
@@ -33,6 +35,11 @@ return [
|
|||||||
(new Extend\Formatter)
|
(new Extend\Formatter)
|
||||||
->configure(ConfigureMentions::class),
|
->configure(ConfigureMentions::class),
|
||||||
|
|
||||||
|
(new Extend\Model(Post::class))
|
||||||
|
->belongsToMany('mentionedBy', Post::class, 'post_mentions_post', 'mentions_post_id', 'post_id')
|
||||||
|
->belongsToMany('mentionsPosts', Post::class, 'post_mentions_post', 'post_id', 'mentions_post_id')
|
||||||
|
->belongsToMany('mentionsUsers', User::class, 'post_mentions_user', 'post_id', 'mentions_user_id'),
|
||||||
|
|
||||||
function (Dispatcher $events, Factory $views) {
|
function (Dispatcher $events, Factory $views) {
|
||||||
$events->listen(WillSerializeData::class, Listener\FilterVisiblePosts::class);
|
$events->listen(WillSerializeData::class, Listener\FilterVisiblePosts::class);
|
||||||
$events->subscribe(Listener\AddPostMentionedByRelationship::class);
|
$events->subscribe(Listener\AddPostMentionedByRelationship::class);
|
||||||
|
@@ -13,9 +13,6 @@ use Flarum\Api\Controller;
|
|||||||
use Flarum\Api\Event\WillGetData;
|
use Flarum\Api\Event\WillGetData;
|
||||||
use Flarum\Api\Serializer\BasicPostSerializer;
|
use Flarum\Api\Serializer\BasicPostSerializer;
|
||||||
use Flarum\Event\GetApiRelationship;
|
use Flarum\Event\GetApiRelationship;
|
||||||
use Flarum\Event\GetModelRelationship;
|
|
||||||
use Flarum\Post\Post;
|
|
||||||
use Flarum\User\User;
|
|
||||||
use Illuminate\Contracts\Events\Dispatcher;
|
use Illuminate\Contracts\Events\Dispatcher;
|
||||||
|
|
||||||
class AddPostMentionedByRelationship
|
class AddPostMentionedByRelationship
|
||||||
@@ -25,30 +22,10 @@ class AddPostMentionedByRelationship
|
|||||||
*/
|
*/
|
||||||
public function subscribe(Dispatcher $events)
|
public function subscribe(Dispatcher $events)
|
||||||
{
|
{
|
||||||
$events->listen(GetModelRelationship::class, [$this, 'getModelRelationship']);
|
|
||||||
$events->listen(GetApiRelationship::class, [$this, 'getApiRelationship']);
|
$events->listen(GetApiRelationship::class, [$this, 'getApiRelationship']);
|
||||||
$events->listen(WillGetData::class, [$this, 'includeRelationships']);
|
$events->listen(WillGetData::class, [$this, 'includeRelationships']);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param GetModelRelationship $event
|
|
||||||
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany|null
|
|
||||||
*/
|
|
||||||
public function getModelRelationship(GetModelRelationship $event)
|
|
||||||
{
|
|
||||||
if ($event->isRelationship(Post::class, 'mentionedBy')) {
|
|
||||||
return $event->model->belongsToMany(Post::class, 'post_mentions_post', 'mentions_post_id', 'post_id', null, null, 'mentionedBy');
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($event->isRelationship(Post::class, 'mentionsPosts')) {
|
|
||||||
return $event->model->belongsToMany(Post::class, 'post_mentions_post', 'post_id', 'mentions_post_id', null, null, 'mentionsPosts');
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($event->isRelationship(Post::class, 'mentionsUsers')) {
|
|
||||||
return $event->model->belongsToMany(User::class, 'post_mentions_user', 'post_id', 'mentions_user_id', null, null, 'mentionsUsers');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param GetApiRelationship $event
|
* @param GetApiRelationship $event
|
||||||
* @return \Tobscure\JsonApi\Relationship|null
|
* @return \Tobscure\JsonApi\Relationship|null
|
||||||
|
Reference in New Issue
Block a user