mirror of
https://codeberg.org/demostf/api.git
synced 2026-06-03 18:04:08 +02:00
stricter cs
This commit is contained in:
parent
309ae17036
commit
d9a843ecd6
54 changed files with 346 additions and 168 deletions
|
|
@ -1,4 +1,8 @@
|
|||
<?php namespace Demostf\API\Providers;
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Demostf\API\Providers;
|
||||
|
||||
use Doctrine\DBAL\Connection;
|
||||
use RandomLib\Generator;
|
||||
|
|
@ -22,13 +26,14 @@ class AuthProvider extends BaseProvider {
|
|||
apcu_store($token, [
|
||||
'name' => $steamid->getNickname(),
|
||||
'steamid' => $steamid->getSteamId64(),
|
||||
'key' => $key
|
||||
'key' => $key,
|
||||
]);
|
||||
}
|
||||
|
||||
public function getUser($token) {
|
||||
$found = true;
|
||||
$result = apcu_fetch($token, $found);
|
||||
|
||||
return $found ? $result : ['name' => null, 'steamid' => null, 'key' => null];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,8 @@
|
|||
<?php namespace Demostf\API\Providers;
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Demostf\API\Providers;
|
||||
|
||||
use Doctrine\DBAL\Connection;
|
||||
use Doctrine\DBAL\Platforms\MySqlPlatform;
|
||||
|
|
@ -26,7 +30,7 @@ class BaseProvider {
|
|||
private function dbConfig() {
|
||||
$platform = $this->connection->getDatabasePlatform();
|
||||
if ($platform instanceof MySqlPlatform) {
|
||||
$this->db->setIdentifierDelimiter("`");
|
||||
$this->db->setIdentifierDelimiter('`');
|
||||
} else {
|
||||
$this->db->setIdentifierDelimiter('"');
|
||||
}
|
||||
|
|
@ -34,11 +38,10 @@ class BaseProvider {
|
|||
$this->db->setRewrite(function ($table) {
|
||||
$rawNames = ['chat'];
|
||||
$aliases = [
|
||||
|
||||
];
|
||||
if (isset($aliases[$table])) {
|
||||
return $aliases[$table];
|
||||
} elseif (array_search($table, $rawNames) === false) {
|
||||
} elseif (array_search($table, $rawNames, true) === false) {
|
||||
return $table . 's';
|
||||
} else {
|
||||
return $table;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,8 @@
|
|||
<?php namespace Demostf\API\Providers;
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Demostf\API\Providers;
|
||||
|
||||
use Demostf\API\Demo\ChatMessage;
|
||||
|
||||
|
|
@ -10,10 +14,11 @@ class ChatProvider extends BaseProvider {
|
|||
->where($query->expr()->eq('demo_id', $query->createNamedParameter($demoId, \PDO::PARAM_INT)));
|
||||
|
||||
$result = $query->execute();
|
||||
|
||||
return array_map(function (array $row) {
|
||||
return new ChatMessage(
|
||||
$row['from'],
|
||||
(int)$row['time'],
|
||||
(int) $row['time'],
|
||||
$row['text']
|
||||
);
|
||||
}, $result->fetchAll());
|
||||
|
|
|
|||
|
|
@ -1,4 +1,8 @@
|
|||
<?php namespace Demostf\API\Providers;
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Demostf\API\Providers;
|
||||
|
||||
use Demostf\API\Demo\Demo;
|
||||
use Doctrine\DBAL\Connection;
|
||||
|
|
@ -7,6 +11,7 @@ class DemoListProvider extends BaseProvider {
|
|||
public function listUploads(string $steamid, int $page, array $where = []) {
|
||||
$user = $this->db->user()->where('steamid', $steamid);
|
||||
$where['uploader'] = $user->fetch()->id;
|
||||
|
||||
return $this->listDemos($page, $where);
|
||||
}
|
||||
|
||||
|
|
@ -20,7 +25,7 @@ class DemoListProvider extends BaseProvider {
|
|||
$in = implode(', ', array_fill(0, count($userIds), '?'));
|
||||
|
||||
$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[] = count($userIds);
|
||||
|
|
@ -31,13 +36,15 @@ class DemoListProvider extends BaseProvider {
|
|||
$demos = $this->db->demo()->where('id', $demoIds)
|
||||
->where($where)
|
||||
->orderBy('id', 'DESC');
|
||||
|
||||
return $this->formatList($demos->fetchAll());
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $page
|
||||
* @param array $where
|
||||
* @param int $page
|
||||
* @param array $where
|
||||
* @param string $order
|
||||
*
|
||||
* @return Demo[]
|
||||
*/
|
||||
public function listDemos(int $page, array $where = [], $order = 'DESC') {
|
||||
|
|
@ -66,6 +73,7 @@ class DemoListProvider extends BaseProvider {
|
|||
->setFirstResult($offset);
|
||||
|
||||
$demos = $query->execute()->fetchAll(\PDO::FETCH_ASSOC);
|
||||
|
||||
return $this->formatList($demos);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
<?php declare(strict_types=1);
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Demostf\API\Providers;
|
||||
|
||||
|
|
@ -37,12 +39,13 @@ class DemoProvider extends BaseProvider {
|
|||
'id' => $uploader['id'],
|
||||
'steamid' => $uploader['steamid'],
|
||||
'name' => $uploader['name'],
|
||||
'avatar' => $uploader['avatar']
|
||||
'avatar' => $uploader['avatar'],
|
||||
]));
|
||||
$formattedDemo->setPlayers(array_map(function ($player) {
|
||||
return DemoPlayer::fromRow($player);
|
||||
}, $players));
|
||||
}
|
||||
|
||||
return $formattedDemo;
|
||||
}
|
||||
|
||||
|
|
@ -52,7 +55,7 @@ class DemoProvider extends BaseProvider {
|
|||
->from('demos')
|
||||
->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 {
|
||||
|
|
@ -65,7 +68,7 @@ class DemoProvider extends BaseProvider {
|
|||
'red' => $query->createNamedParameter($demo->getRed()),
|
||||
'blu' => $query->createNamedParameter($demo->getBlue()),
|
||||
'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)),
|
||||
'updated_at' => 'now()',
|
||||
'backend' => $query->createNamedParameter($backend),
|
||||
|
|
@ -76,10 +79,11 @@ class DemoProvider extends BaseProvider {
|
|||
'server' => $query->createNamedParameter($demo->getServer()),
|
||||
'nick' => $query->createNamedParameter($demo->getNick()),
|
||||
'"playerCount"' => $query->createNamedParameter($demo->getPlayerCount(), \PDO::PARAM_INT),
|
||||
'hash' => $query->createNamedParameter($demo->getHash())
|
||||
'hash' => $query->createNamedParameter($demo->getHash()),
|
||||
])
|
||||
->execute();
|
||||
return (int)$this->connection->lastInsertId();
|
||||
|
||||
return (int) $this->connection->lastInsertId();
|
||||
}
|
||||
|
||||
public function setDemoUrl(int $id, string $backend, string $url, string $path) {
|
||||
|
|
|
|||
|
|
@ -1,9 +1,14 @@
|
|||
<?php namespace Demostf\API\Providers;
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Demostf\API\Providers;
|
||||
|
||||
class InfoProvider extends BaseProvider {
|
||||
public function listMaps() {
|
||||
$sql = 'SELECT DISTINCT(map), COUNT(map) AS count from demos GROUP BY map ORDER BY count DESC';
|
||||
$result = $this->query($sql);
|
||||
|
||||
return $result->fetchAll(\PDO::FETCH_COLUMN);
|
||||
}
|
||||
|
||||
|
|
@ -13,7 +18,7 @@ class InfoProvider extends BaseProvider {
|
|||
|
||||
return [
|
||||
'demos' => $demoCount,
|
||||
'players' => $playerCount
|
||||
'players' => $playerCount,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
<?php declare(strict_types=1);
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Demostf\API\Providers;
|
||||
|
||||
|
|
@ -15,10 +17,10 @@ class KillProvider extends BaseProvider {
|
|||
'victim_id' => $query->createNamedParameter($kill->getVictimId()),
|
||||
'weapon' => $query->createNamedParameter($kill->getWeapon()),
|
||||
'created_at' => 'now()',
|
||||
'updated_at' => 'now()'
|
||||
'updated_at' => 'now()',
|
||||
]);
|
||||
$query->execute();
|
||||
|
||||
return (int)$this->connection->lastInsertId();
|
||||
return (int) $this->connection->lastInsertId();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
<?php declare(strict_types=1);
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Demostf\API\Providers;
|
||||
|
||||
|
|
@ -16,10 +18,10 @@ class PlayerProvider extends BaseProvider {
|
|||
'team' => $query->createNamedParameter($player->getTeam()),
|
||||
'class' => $query->createNamedParameter($player->getClass()),
|
||||
'created_at' => 'now()',
|
||||
'updated_at' => 'now()'
|
||||
'updated_at' => 'now()',
|
||||
]);
|
||||
$query->execute();
|
||||
|
||||
return (int)$this->connection->lastInsertId();
|
||||
return (int) $this->connection->lastInsertId();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
<?php namespace Demostf\API\Providers;
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Demostf\API\Providers;
|
||||
|
||||
use Demostf\API\Data\DemoPlayer;
|
||||
use Demostf\API\Data\ParsedDemo;
|
||||
use Demostf\API\Data\Upload;
|
||||
use Demostf\API\Data\User;
|
||||
use Demostf\API\Demo\DemoSaver;
|
||||
use Demostf\API\Demo\DemoStore;
|
||||
use Demostf\API\Demo\Header;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
<?php declare(strict_types=1);
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Demostf\API\Providers;
|
||||
|
||||
|
|
@ -31,11 +33,12 @@ class UserProvider extends BaseProvider {
|
|||
'steamid' => $query->createNamedParameter($steamId->getSteamId64()),
|
||||
'name' => $query->createNamedParameter($steamId->getNickname()),
|
||||
'avatar' => $query->createNamedParameter($steamId->getMediumAvatarUrl()),
|
||||
'token' => $query->createNamedParameter($token)
|
||||
'token' => $query->createNamedParameter($token),
|
||||
])->add('orderBy', 'ON CONFLICT DO NOTHING')// hack to append arbitrary string to sql
|
||||
->execute();
|
||||
|
||||
$user = $this->get($steamId->getSteamId64());
|
||||
|
||||
return $user ? $user->getToken() : $token;
|
||||
}
|
||||
|
||||
|
|
@ -46,6 +49,7 @@ class UserProvider extends BaseProvider {
|
|||
->where($query->expr()->eq('steamid', $query->createNamedParameter($steamid)));
|
||||
|
||||
$row = $query->execute()->fetch();
|
||||
|
||||
return $row ? User::fromRow($row) : null;
|
||||
}
|
||||
|
||||
|
|
@ -71,7 +75,7 @@ class UserProvider extends BaseProvider {
|
|||
$bySteamId = $this->searchBySteamId($query);
|
||||
if ($bySteamId) {
|
||||
return [
|
||||
$bySteamId
|
||||
$bySteamId,
|
||||
];
|
||||
}
|
||||
|
||||
|
|
@ -106,7 +110,7 @@ class UserProvider extends BaseProvider {
|
|||
$result[$id] = [
|
||||
'id' => $id,
|
||||
'name' => $player['name'],
|
||||
'steamid' => $player['steamid']
|
||||
'steamid' => $player['steamid'],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
@ -121,6 +125,7 @@ class UserProvider extends BaseProvider {
|
|||
->where($query->expr()->eq('token', $query->createNamedParameter($key)));
|
||||
|
||||
$row = $query->execute()->fetch();
|
||||
|
||||
return $row ? User::fromRow($row) : null;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue