Files
framework/src/Api/Actions/Users/ShowAction.php
2015-07-18 22:59:47 +09:30

79 lines
1.4 KiB
PHP

<?php namespace Flarum\Api\Actions\Users;
use Flarum\Core\Users\UserRepository;
use Flarum\Api\Actions\SerializeResourceAction;
use Flarum\Api\JsonApiRequest;
use Tobscure\JsonApi\Document;
class ShowAction extends SerializeResourceAction
{
/**
* @var UserRepository
*/
protected $users;
/**
* @inheritdoc
*/
public $serializer = 'Flarum\Api\Serializers\CurrentUserSerializer';
/**
* @inheritdoc
*/
public $include = [
'groups' => true
];
/**
* @inheritdoc
*/
public $link = [];
/**
* @inheritdoc
*/
public $limitMax = 50;
/**
* @inheritdoc
*/
public $limit = 20;
/**
* @inheritdoc
*/
public $sortFields = [];
/**
* @inheritdoc
*/
public $sort;
/**
* @param UserRepository $users
*/
public function __construct(UserRepository $users)
{
$this->users = $users;
}
/**
* Get a single user, ready to be serialized and assigned to the JsonApi
* response.
*
* @param JsonApiRequest $request
* @param Document $document
* @return \Flarum\Core\Users\User
*/
protected function data(JsonApiRequest $request, Document $document)
{
$id = $request->get('id');
if (! is_numeric($id)) {
$id = $this->users->getIdForUsername($id);
}
return $this->users->findOrFail($id, $request->actor);
}
}