1
0
mirror of https://github.com/flarum/core.git synced 2025-07-29 04:30:56 +02:00

Rework public API based on events

This commit is contained in:
Toby Zerner
2015-07-18 22:59:47 +09:30
parent 5085c09c30
commit 57650fa648
136 changed files with 1157 additions and 1245 deletions

View File

@@ -1,6 +1,11 @@
<?php namespace Flarum\Api;
use Flarum\Api\Serializers\ActivitySerializer;
use Flarum\Api\Serializers\NotificationSerializer;
use Flarum\Core\Users\Guest;
use Flarum\Events\RegisterApiRoutes;
use Flarum\Events\RegisterActivityTypes;
use Flarum\Events\RegisterNotificationTypes;
use Flarum\Http\RouteCollection;
use Flarum\Http\UrlGenerator;
use Illuminate\Support\ServiceProvider;
@@ -37,6 +42,45 @@ class ApiServiceProvider extends ServiceProvider
public function boot()
{
$this->routes();
$this->registerActivitySerializers();
$this->registerNotificationSerializers();
}
/**
* Register activity serializers.
*/
protected function registerActivitySerializers()
{
$blueprints = [];
$serializers = [
'posted' => 'Flarum\Api\Serializers\PostBasicSerializer',
'startedDiscussion' => 'Flarum\Api\Serializers\PostBasicSerializer',
'joined' => 'Flarum\Api\Serializers\UserSerializer'
];
event(new RegisterActivityTypes($blueprints, $serializers));
foreach ($serializers as $type => $serializer) {
ActivitySerializer::setSubjectSerializer($type, $serializer);
}
}
/**
* Register notification serializers.
*/
protected function registerNotificationSerializers()
{
$blueprints = [];
$serializers = [
'discussionRenamed' => 'Flarum\Api\Serializers\DiscussionBasicSerializer'
];
event(new RegisterNotificationTypes($blueprints, $serializers));
foreach ($serializers as $type => $serializer) {
NotificationSerializer::setSubjectSerializer($type, $serializer);
}
}
protected function routes()
@@ -268,6 +312,8 @@ class ApiServiceProvider extends ServiceProvider
'flarum.api.groups.delete',
$this->action('Flarum\Api\Actions\Groups\DeleteAction')
);
event(new RegisterApiRoutes($routes));
}
protected function action($class)