1
0
Fork 0
mirror of https://codeberg.org/demostf/api.git synced 2026-06-03 18:04:08 +02:00

more type hints

This commit is contained in:
Robin Appelman 2017-07-30 16:08:25 +02:00
commit 807c8c9a26
7 changed files with 23 additions and 21 deletions

View file

@ -10,11 +10,11 @@ class DemoStore {
/** @var string */ /** @var string */
private $root; private $root;
/** @var string */ /** @var string */
private $webroot; private $webRoot;
public function __construct(string $root, string $webroot) { public function __construct(string $root, string $webRoot) {
$this->root = $root; $this->root = $root;
$this->webroot = $webroot; $this->webRoot = $webRoot;
} }
public function store(string $sourcePath, string $name): StoredDemo { public function store(string $sourcePath, string $name): StoredDemo {
@ -32,11 +32,11 @@ class DemoStore {
return $this->root . $this->getPrefix($name) . $name; return $this->root . $this->getPrefix($name) . $name;
} }
private function getPrefix(string $name) { private function getPrefix(string $name): string {
return '/' . substr($name, 0, 2) . '/' . substr($name, 2, 2) . '/'; return '/' . substr($name, 0, 2) . '/' . substr($name, 2, 2) . '/';
} }
private function getUrl(string $name): string { private function getUrl(string $name): string {
return 'https://' . $this->webroot . $this->getPrefix($name) . $name; return 'https://' . $this->webRoot . $this->getPrefix($name) . $name;
} }
} }

View file

@ -117,7 +117,7 @@ class Parser {
* *
* @return string The converted 64bit numeric SteamID * @return string The converted 64bit numeric SteamID
*/ */
public function convertSteamIdToCommunityId($steamId) { public function convertSteamIdToCommunityId(string $steamId): string {
if ($steamId === 'STEAM_ID_LAN' || $steamId === 'BOT') { if ($steamId === 'STEAM_ID_LAN' || $steamId === 'BOT') {
throw new \InvalidArgumentException("Cannot convert SteamID \"$steamId\" to a community ID."); throw new \InvalidArgumentException("Cannot convert SteamID \"$steamId\" to a community ID.");
} }

View file

@ -18,11 +18,11 @@ class AuthProvider extends BaseProvider {
$this->generator = $generator; $this->generator = $generator;
} }
public function generateToken() { public function generateToken(): string {
return $this->generator->generateString(32, Generator::CHAR_ALNUM); return $this->generator->generateString(32, Generator::CHAR_ALNUM);
} }
public function setUser($token, \SteamId $steamid, $key) { public function setUser(string $token, \SteamId $steamid, string $key) {
apcu_store($token, [ apcu_store($token, [
'name' => $steamid->getNickname(), 'name' => $steamid->getNickname(),
'steamid' => $steamid->getSteamId64(), 'steamid' => $steamid->getSteamId64(),
@ -30,7 +30,7 @@ class AuthProvider extends BaseProvider {
]); ]);
} }
public function getUser($token) { public function getUser(string $token) {
$found = true; $found = true;
$result = apcu_fetch($token, $found); $result = apcu_fetch($token, $found);

View file

@ -58,7 +58,7 @@ class BaseProvider {
}); });
} }
protected function query($sql, array $params = []) { protected function query(string $sql, array $params = []) {
$delimiter = $this->db->getIdentifierDelimiter(); $delimiter = $this->db->getIdentifierDelimiter();
$platform = $this->connection->getDatabasePlatform(); $platform = $this->connection->getDatabasePlatform();
$sql = str_replace('`', $delimiter, $sql); $sql = str_replace('`', $delimiter, $sql);

View file

@ -8,8 +8,8 @@ use Demostf\API\Demo\Demo;
use Doctrine\DBAL\Connection; use Doctrine\DBAL\Connection;
class DemoListProvider extends BaseProvider { class DemoListProvider extends BaseProvider {
public function listUploads(string $steamid, int $page, array $where = []) { public function listUploads(string $steamId, int $page, array $where = []) {
$user = $this->db->user()->where('steamid', $steamid); $user = $this->db->user()->where('steamid', $steamId);
$where['uploader'] = $user->fetch()->id; $where['uploader'] = $user->fetch()->id;
return $this->listDemos($page, $where); return $this->listDemos($page, $where);
@ -25,7 +25,7 @@ class DemoListProvider extends BaseProvider {
$in = implode(', ', array_fill(0, count($userIds), '?')); $in = implode(', ', array_fill(0, count($userIds), '?'));
$sql = 'SELECT demos.id FROM demos INNER JOIN players ON players.demo_id = demos.id $sql = 'SELECT demos.id FROM demos INNER JOIN players ON players.demo_id = demos.id
WHERE players.user_id IN (' . $in . ') GROUP BY demos.id HAVING COUNT(user_id) = ? ORDER BY demos.id DESC LIMIT 50 OFFSET ' . ((int) $page - 1) * 50; WHERE players.user_id IN (' . $in . ') GROUP BY demos.id HAVING COUNT(user_id) = ? ORDER BY demos.id DESC LIMIT 50 OFFSET ' . ((int)$page - 1) * 50;
$params = $userIds; $params = $userIds;
$params[] = count($userIds); $params[] = count($userIds);
@ -47,7 +47,7 @@ class DemoListProvider extends BaseProvider {
* *
* @return Demo[] * @return Demo[]
*/ */
public function listDemos(int $page, array $where = [], $order = 'DESC') { public function listDemos(int $page, array $where = [], string $order = 'DESC') {
if (isset($where['players']) and is_array($where['players']) and count($where['players']) > 0) { if (isset($where['players']) and is_array($where['players']) and count($where['players']) > 0) {
return $this->listProfile($page, $where); return $this->listProfile($page, $where);
} }
@ -63,10 +63,12 @@ class DemoListProvider extends BaseProvider {
$query->where($query->expr()->eq('map', $query->createNamedParameter($where['map']))); $query->where($query->expr()->eq('map', $query->createNamedParameter($where['map'])));
} }
if (isset($where['playerCount'])) { if (isset($where['playerCount'])) {
$query->where($query->expr()->in('"playerCount"', $query->createNamedParameter($where['playerCount'], Connection::PARAM_INT_ARRAY))); $query->where($query->expr()->in('"playerCount"',
$query->createNamedParameter($where['playerCount'], Connection::PARAM_INT_ARRAY)));
} }
if (isset($where['uploader'])) { if (isset($where['uploader'])) {
$query->where($query->expr()->in('uploader', $query->createNamedParameter($where['uploader'], \PDO::PARAM_INT))); $query->where($query->expr()->in('uploader',
$query->createNamedParameter($where['uploader'], \PDO::PARAM_INT)));
} }
$query->orderBy('d.id', $order) $query->orderBy('d.id', $order)
->setMaxResults(50) ->setMaxResults(50)

View file

@ -49,13 +49,13 @@ class DemoProvider extends BaseProvider {
return $formattedDemo; return $formattedDemo;
} }
public function demoIdByHash($hash): int { public function demoIdByHash(string $hash): int {
$query = $this->getQueryBuilder(); $query = $this->getQueryBuilder();
$query->select('id') $query->select('id')
->from('demos') ->from('demos')
->where($query->expr()->eq('hash', $query->createNamedParameter($hash))); ->where($query->expr()->eq('hash', $query->createNamedParameter($hash)));
return (int) $query->execute()->fetchColumn(); return (int)$query->execute()->fetchColumn();
} }
public function storeDemo(Demo $demo, string $backend, string $path): int { public function storeDemo(Demo $demo, string $backend, string $path): int {
@ -68,7 +68,7 @@ class DemoProvider extends BaseProvider {
'red' => $query->createNamedParameter($demo->getRed()), 'red' => $query->createNamedParameter($demo->getRed()),
'blu' => $query->createNamedParameter($demo->getBlue()), 'blu' => $query->createNamedParameter($demo->getBlue()),
'uploader' => $query->createNamedParameter($demo->getUploader(), \PDO::PARAM_INT), 'uploader' => $query->createNamedParameter($demo->getUploader(), \PDO::PARAM_INT),
'duration' => $query->createNamedParameter((int) $demo->getDuration(), \PDO::PARAM_INT), 'duration' => $query->createNamedParameter((int)$demo->getDuration(), \PDO::PARAM_INT),
'created_at' => $query->createNamedParameter($demo->getTime()->format(\DATE_ATOM)), 'created_at' => $query->createNamedParameter($demo->getTime()->format(\DATE_ATOM)),
'updated_at' => 'now()', 'updated_at' => 'now()',
'backend' => $query->createNamedParameter($backend), 'backend' => $query->createNamedParameter($backend),
@ -83,7 +83,7 @@ class DemoProvider extends BaseProvider {
]) ])
->execute(); ->execute();
return (int) $this->connection->lastInsertId(); return (int)$this->connection->lastInsertId();
} }
public function setDemoUrl(int $id, string $backend, string $url, string $path) { public function setDemoUrl(int $id, string $backend, string $url, string $path) {

View file

@ -118,7 +118,7 @@ class UserProvider extends BaseProvider {
return array_values($result); return array_values($result);
} }
public function byKey($key): ?User { public function byKey(string $key): ?User {
$query = $this->getQueryBuilder(); $query = $this->getQueryBuilder();
$query->select(['id', 'steamid', 'name', 'avatar', 'token']) $query->select(['id', 'steamid', 'name', 'avatar', 'token'])
->from('users') ->from('users')