This repository has been archived on 2025-02-26. You can view files and clone it, but cannot push or open issues or pull requests.
szurubooru/src/Routes/Users/GetUser.php
rr- 5305bb68a4 Simplified search parsing
Reduced execution flow dependencies and made all search parsers share
the basic code rather than implementing everything all over again in
each parser through awkward protected functions.
2015-11-25 01:25:43 +01:00

47 lines
1.4 KiB
PHP

<?php
namespace Szurubooru\Routes\Users;
use Szurubooru\Privilege;
use Szurubooru\Search\ParserConfigs\UserSearchParserConfig;
use Szurubooru\Search\SearchParser;
use Szurubooru\Services\PrivilegeService;
use Szurubooru\Services\UserService;
use Szurubooru\ViewProxies\UserViewProxy;
class GetUser extends AbstractUserRoute
{
private $privilegeService;
private $userService;
private $searchParserConfig;
private $userViewProxy;
public function __construct(
PrivilegeService $privilegeService,
UserService $userService,
UserSearchParserConfig $searchParserConfig,
UserViewProxy $userViewProxy)
{
$this->privilegeService = $privilegeService;
$this->userService = $userService;
$this->searchParser = new SearchParser($searchParserConfig);
$this->userViewProxy = $userViewProxy;
}
public function getMethods()
{
return ['GET'];
}
public function getUrl()
{
return '/api/users/:userNameOrEmail';
}
public function work($args)
{
$userNameOrEmail = $args['userNameOrEmail'];
if (!$this->privilegeService->isLoggedIn($userNameOrEmail))
$this->privilegeService->assertPrivilege(Privilege::VIEW_USERS);
$user = $this->userService->getByNameOrEmail($userNameOrEmail);
return ['user' => $this->userViewProxy->fromEntity($user)];
}
}