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:
40
src/Api/Actions/Groups/CreateAction.php
Normal file
40
src/Api/Actions/Groups/CreateAction.php
Normal 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'))
|
||||
);
|
||||
}
|
||||
}
|
34
src/Api/Actions/Groups/DeleteAction.php
Normal file
34
src/Api/Actions/Groups/DeleteAction.php
Normal 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)
|
||||
);
|
||||
}
|
||||
}
|
@@ -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.
|
||||
|
43
src/Api/Actions/Groups/UpdateAction.php
Normal file
43
src/Api/Actions/Groups/UpdateAction.php
Normal 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'))
|
||||
);
|
||||
}
|
||||
}
|
@@ -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}',
|
||||
|
Reference in New Issue
Block a user