mirror of
https://codeberg.org/demostf/api.git
synced 2026-06-03 18:04:08 +02:00
43 lines
1.1 KiB
PHP
43 lines
1.1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Demostf\API\Controllers;
|
|
|
|
use Demostf\API\Demo\Parser;
|
|
use Demostf\API\Providers\UserProvider;
|
|
use Flight;
|
|
use flight\net\Request;
|
|
use flight\net\Response;
|
|
use InvalidArgumentException;
|
|
|
|
class UserController extends BaseController {
|
|
/**
|
|
* @var UserProvider
|
|
*/
|
|
private $userProvider;
|
|
|
|
public function __construct(Request $request, Response $response, UserProvider $userProvider) {
|
|
parent::__construct($request, $response);
|
|
$this->userProvider = $userProvider;
|
|
}
|
|
|
|
public function get($steamId) {
|
|
if (!is_numeric($steamId)) {
|
|
try {
|
|
$steamId = Parser::convertSteamIdToCommunityId($steamId);
|
|
} catch (InvalidArgumentException $e) {
|
|
}
|
|
} elseif ($user = $this->userProvider->getById((int) $steamId)) {
|
|
Flight::json($user);
|
|
|
|
return;
|
|
}
|
|
Flight::json($this->userProvider->get($steamId));
|
|
}
|
|
|
|
public function search() {
|
|
$query = $this->query('query', '');
|
|
Flight::json($this->userProvider->search($query));
|
|
}
|
|
}
|