1
0
mirror of https://github.com/flarum/core.git synced 2025-10-18 18:26:07 +02:00

Add group management actions to API

This commit is contained in:
Toby Zerner
2015-07-31 20:10:49 +09:30
parent 6641af3ac3
commit cea8e7f567
21 changed files with 684 additions and 58 deletions

View File

@@ -0,0 +1,40 @@
<?php namespace Flarum\Api\Actions\Groups;
use Flarum\Core\Groups\Commands\CreateGroup;
use Flarum\Api\Actions\CreateAction as BaseCreateAction;
use Flarum\Api\JsonApiRequest;
use Illuminate\Contracts\Bus\Dispatcher;
class CreateAction extends BaseCreateAction
{
/**
* @var Dispatcher
*/
protected $bus;
/**
* @inheritdoc
*/
public $serializer = 'Flarum\Api\Serializers\GroupSerializer';
/**
* @param Dispatcher $bus
*/
public function __construct(Dispatcher $bus)
{
$this->bus = $bus;
}
/**
* Create a group according to input from the API request.
*
* @param JsonApiRequest $request
* @return \Flarum\Core\Groups\Group
*/
protected function create(JsonApiRequest $request)
{
return $this->bus->dispatch(
new CreateGroup($request->actor, $request->get('data'))
);
}
}

View File

@@ -0,0 +1,34 @@
<?php namespace Flarum\Api\Actions\Groups;
use Flarum\Core\Groups\Commands\DeleteGroup;
use Flarum\Api\Actions\DeleteAction as BaseDeleteAction;
use Flarum\Api\Request;
use Illuminate\Contracts\Bus\Dispatcher;
class DeleteAction extends BaseDeleteAction
{
/**
* @var Dispatcher
*/
protected $bus;
/**
* @param Dispatcher $bus
*/
public function __construct(Dispatcher $bus)
{
$this->bus = $bus;
}
/**
* Delete a group.
*
* @param Request $request
*/
protected function delete(Request $request)
{
$this->bus->dispatch(
new DeleteGroup($request->get('id'), $request->actor)
);
}
}

View File

@@ -12,36 +12,6 @@ class IndexAction extends SerializeCollectionAction
*/
public $serializer = 'Flarum\Api\Serializers\GroupSerializer';
/**
* @inheritdoc
*/
public $include = [];
/**
* @inheritdoc
*/
public $link = [];
/**
* @inheritdoc
*/
public $limitMax = 50;
/**
* @inheritdoc
*/
public $limit = 20;
/**
* @inheritdoc
*/
public $sortFields = [];
/**
* @inheritdoc
*/
public $sort;
/**
* Get the groups, ready to be serialized and assigned to the document
* response.

View File

@@ -0,0 +1,43 @@
<?php namespace Flarum\Api\Actions\Groups;
use Flarum\Core\Groups\Commands\EditGroup;
use Flarum\Api\Actions\SerializeResourceAction;
use Flarum\Api\JsonApiRequest;
use Illuminate\Contracts\Bus\Dispatcher;
use Tobscure\JsonApi\Document;
class UpdateAction extends SerializeResourceAction
{
/**
* @var Dispatcher
*/
protected $bus;
/**
* @inheritdoc
*/
public $serializer = 'Flarum\Api\Serializers\GroupSerializer';
/**
* @param Dispatcher $bus
*/
public function __construct(Dispatcher $bus)
{
$this->bus = $bus;
}
/**
* Update a group according to input from the API request, and return it
* ready to be serialized and assigned to the JsonApi response.
*
* @param JsonApiRequest $request
* @param Document $document
* @return \Flarum\Core\Groups\Group
*/
protected function data(JsonApiRequest $request, Document $document)
{
return $this->bus->dispatch(
new EditGroup($request->get('id'), $request->actor, $request->get('data'))
);
}
}

View File

@@ -299,13 +299,6 @@ class ApiServiceProvider extends ServiceProvider
$this->action('Flarum\Api\Actions\Groups\CreateAction')
);
// Show a single group
$routes->get(
'/groups/{id}',
'flarum.api.groups.show',
$this->action('Flarum\Api\Actions\Groups\ShowAction')
);
// Edit a group
$routes->patch(
'/groups/{id}',