framework/src/Api/Actions/Notifications/UpdateAction.php

76 lines
1.6 KiB
PHP
Raw Normal View History

2015-03-24 12:37:38 +08:00
<?php namespace Flarum\Api\Actions\Notifications;
use Flarum\Core\Commands\ReadNotificationCommand;
use Flarum\Api\Actions\SerializeResourceAction;
use Flarum\Api\JsonApiRequest;
use Illuminate\Contracts\Bus\Dispatcher;
use Tobscure\JsonApi\Document;
2015-03-24 12:37:38 +08:00
class UpdateAction extends SerializeResourceAction
2015-03-24 12:37:38 +08:00
{
/**
* @var \Illuminate\Contracts\Bus\Dispatcher
2015-03-24 12:37:38 +08:00
*/
protected $bus;
2015-03-24 12:37:38 +08:00
/**
* @inheritdoc
*/
public static $serializer = 'Flarum\Api\Serializers\NotificationSerializer';
2015-03-24 12:37:38 +08:00
/**
* @inheritdoc
*/
public static $include = [];
/**
* @inheritdoc
*/
public static $link = [];
/**
* @inheritdoc
*/
public static $limitMax = 50;
/**
* @inheritdoc
*/
public static $limit = 20;
/**
* @inheritdoc
*/
public static $sortFields = [];
/**
* @inheritdoc
*/
public static $sort;
/**
* Instantiate the action.
*
* @param \Illuminate\Contracts\Bus\Dispatcher $bus
*/
public function __construct(Dispatcher $bus)
{
$this->bus = $bus;
}
2015-03-24 12:37:38 +08:00
/**
* Mark a notification as read, and return it ready to be serialized and
* assigned to the JsonApi response.
*
* @param \Flarum\Api\JsonApiRequest $request
* @param \Tobscure\JsonApi\Document $document
* @return \Illuminate\Database\Eloquent\Collection
*/
protected function data(JsonApiRequest $request, Document $document)
{
return $this->bus->dispatch(
new ReadNotificationCommand($request->get('id'), $request->actor->getUser())
);
2015-03-24 12:37:38 +08:00
}
}