mirror of
https://codeberg.org/demostf/api.git
synced 2026-06-04 02:14:06 +02:00
hook everything up into a working system
This commit is contained in:
parent
03d3acebf5
commit
9024e368c7
12 changed files with 204 additions and 81 deletions
|
|
@ -3,6 +3,7 @@
|
|||
use Ehesp\SteamLogin\SteamLogin;
|
||||
use Demostf\API\Providers\AuthProvider;
|
||||
use Demostf\API\Providers\UserProvider;
|
||||
use flight\Engine;
|
||||
|
||||
class AuthController extends BaseController {
|
||||
/**
|
||||
|
|
@ -18,17 +19,13 @@ class AuthController extends BaseController {
|
|||
/** @var string */
|
||||
private $host;
|
||||
|
||||
/**
|
||||
* AuthController constructor.
|
||||
*
|
||||
* @param UserProvider $userProvider
|
||||
* @param AuthProvider $authProvider
|
||||
* @param string $host
|
||||
*/
|
||||
public function __construct(UserProvider $userProvider, AuthProvider $authProvider, string $host) {
|
||||
private $apiRoot;
|
||||
|
||||
public function __construct(UserProvider $userProvider, AuthProvider $authProvider, string $host, string $apiRoot) {
|
||||
$this->userProvider = $userProvider;
|
||||
$this->authProvider = $authProvider;
|
||||
$this->host = $host;
|
||||
$this->apiRoot = $apiRoot;
|
||||
}
|
||||
|
||||
public function token() {
|
||||
|
|
@ -48,7 +45,7 @@ class AuthController extends BaseController {
|
|||
public function login($token) {
|
||||
$_SESSION['return'] = $this->query('return', 'https://' . $this->host);
|
||||
$steam = new SteamLogin();
|
||||
$url = $steam->url($_ENV['APP_ROOT'] . '/auth/handle/' . urlencode($token));
|
||||
$url = $steam->url($this->apiRoot . '/auth/handle/' . urlencode($token));
|
||||
\Flight::redirect(str_replace('&', '&', $url)); // headers make no sense
|
||||
}
|
||||
|
||||
|
|
@ -63,7 +60,7 @@ class AuthController extends BaseController {
|
|||
}
|
||||
|
||||
public function handle($token) {
|
||||
$return = isset($_SESSION['return']) ? $_SESSION['return'] : 'http://demos.tf';
|
||||
$return = isset($_SESSION['return']) ? $_SESSION['return'] : 'https://' . $this->host;
|
||||
unset($_SESSION['return']);
|
||||
$steam = new SteamLogin();
|
||||
$steamId = $steam->validate();
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
<?php namespace Demostf\API\Controllers;
|
||||
|
||||
|
||||
class BaseController {
|
||||
|
||||
protected function query($name, $default) {
|
||||
$request = \Flight::request();
|
||||
return isset($request->query[$name]) ? $request->query[$name] : $default;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
<?php namespace Demostf\API\Controllers;
|
||||
|
||||
use Demostf\API\Providers\ChatProvider;
|
||||
use Demostf\API\Providers\DemoListProvider;
|
||||
use Demostf\API\Providers\DemoProvider;
|
||||
use flight\Engine;
|
||||
|
||||
class DemoController extends BaseController {
|
||||
/** @var DemoProvider */
|
||||
|
|
@ -10,9 +12,12 @@ class DemoController extends BaseController {
|
|||
/** @var ChatProvider */
|
||||
private $chatProvider;
|
||||
|
||||
public function __construct(DemoProvider $demoProvider, ChatProvider $chatProvider) {
|
||||
private $demoListProvider;
|
||||
|
||||
public function __construct(DemoProvider $demoProvider, ChatProvider $chatProvider, DemoListProvider $demoListProvider) {
|
||||
$this->demoProvider = $demoProvider;
|
||||
$this->chatProvider = $chatProvider;
|
||||
$this->demoListProvider = $demoListProvider;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -53,19 +58,19 @@ class DemoController extends BaseController {
|
|||
|
||||
public function listDemos() {
|
||||
$page = $this->query('page', 1);
|
||||
\Flight::json($this->demoProvider->listDemos($page, $this->getFilter()));
|
||||
\Flight::json($this->demoListProvider->listDemos($page, $this->getFilter()));
|
||||
}
|
||||
|
||||
public function listProfile($steamid) {
|
||||
$page = $this->query('page', 1);
|
||||
$where = $this->getFilter();
|
||||
$where['players'][] = $steamid;
|
||||
\Flight::json($this->demoProvider->listProfile($page, $where));
|
||||
\Flight::json($this->demoListProvider->listProfile($page, $where));
|
||||
}
|
||||
|
||||
public function listUploads($steamid) {
|
||||
$page = $this->query('page', 1);
|
||||
\Flight::json($this->demoProvider->listUploads($steamid, $page, $this->getFilter()));
|
||||
\Flight::json($this->demoListProvider->listUploads($steamid, $page, $this->getFilter()));
|
||||
}
|
||||
|
||||
public function chat($demoId) {
|
||||
|
|
|
|||
|
|
@ -1,16 +1,12 @@
|
|||
<?php namespace Demostf\API\Controllers;
|
||||
|
||||
use Demostf\API\Providers\InfoProvider;
|
||||
use flight\Engine;
|
||||
|
||||
class InfoController extends BaseController {
|
||||
/** @var InfoProvider */
|
||||
private $infoProvider;
|
||||
|
||||
/**
|
||||
* InfoController constructor.
|
||||
*
|
||||
* @param InfoProvider $infoProvider
|
||||
*/
|
||||
public function __construct(InfoProvider $infoProvider) {
|
||||
$this->infoProvider = $infoProvider;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
<?php namespace Demostf\API\Controllers;
|
||||
|
||||
use Demostf\API\Providers\UploadProvider;
|
||||
use flight\Engine;
|
||||
|
||||
class UploadController extends BaseController {
|
||||
private $uploadProvider;
|
||||
|
|
@ -17,6 +18,6 @@ class UploadController extends BaseController {
|
|||
$demo = $this->file('demo');
|
||||
$demoFile = $demo['tmp_name'];
|
||||
|
||||
return $this->uploadProvider->upload($key, $red, $blu, $name, $demoFile);
|
||||
echo $this->uploadProvider->upload($key, $red, $blu, $name, $demoFile);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
use Ehesp\SteamLogin\SteamLogin;
|
||||
use Demostf\API\Providers\AuthProvider;
|
||||
use Demostf\API\Providers\UserProvider;
|
||||
use flight\Engine;
|
||||
|
||||
class UserController extends BaseController {
|
||||
/**
|
||||
|
|
@ -10,11 +11,6 @@ class UserController extends BaseController {
|
|||
*/
|
||||
private $userProvider;
|
||||
|
||||
/**
|
||||
* UserController constructor.
|
||||
*
|
||||
* @param UserProvider $userProvider
|
||||
*/
|
||||
public function __construct(UserProvider $userProvider) {
|
||||
$this->userProvider = $userProvider;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue