diff --git a/public/index.php b/public/index.php index 37a9d30..d95dea4 100644 --- a/public/index.php +++ b/public/index.php @@ -5,10 +5,17 @@ declare(strict_types=1); use BattleForge\Http\CsrfToken; use BattleForge\Http\Handlers\GetAssets; use BattleForge\Http\Handlers\GetBattlefieldEditor; +use BattleForge\Http\Handlers\GetBundledScenario; +use BattleForge\Http\Handlers\GetBundledScenarios; use BattleForge\Http\Handlers\GetHomePage; +use BattleForge\Http\Handlers\GetMatchView; use BattleForge\Http\Handlers\GetTeamEditor; use BattleForge\Http\Handlers\PostBattlefieldEditor; use BattleForge\Http\Handlers\PostImageUpload; +use BattleForge\Http\Handlers\PostMatchAbility; +use BattleForge\Http\Handlers\PostMatchAttack; +use BattleForge\Http\Handlers\PostMatchEndTurn; +use BattleForge\Http\Handlers\PostMatchMove; use BattleForge\Http\Handlers\PostStartMatch; use BattleForge\Http\Handlers\PostTeamEditor; use BattleForge\Http\Request; @@ -96,7 +103,11 @@ $request = new Request( $uploadsRoot = __DIR__ . '/../var/uploads'; $placeholderDir = __DIR__ . '/assets/placeholders'; -$homePage = static fn (Request $r, array $p): Response => (new GetHomePage())->handle($r, $p); +$scenariosDir = __DIR__ . '/assets/scenarios'; + +$homePage = static function (Request $r, array $p) use ($scenariosDir): Response { + return (new GetHomePage($scenariosDir))->handle($r, $p); +}; $getTeam = static fn (Request $r, array $p): Response => (new GetTeamEditor())->handle($r, $p); $postTeam = static fn (Request $r, array $p): Response => (new PostTeamEditor())->handle($r, $p); $getBattlefield = static fn (Request $r, array $p): Response => (new GetBattlefieldEditor())->handle($r, $p); @@ -113,9 +124,36 @@ $getUploadedAsset = static function (Request $r, array $p) use ($placeholderDir, ['kind' => 'uploads', 'userToken' => $p['userToken'] ?? '', 'filename' => $p['filename'] ?? ''], ); }; +$getBundledList = static function (Request $r, array $p) use ($scenariosDir): Response { + return (new GetBundledScenarios($scenariosDir))->handle($r, $p); +}; +$getBundledOne = static function (Request $r, array $p) use ($scenariosDir): Response { + return (new GetBundledScenario($scenariosDir))->handle($r, $p); +}; +$getMatchView = static fn (Request $r, array $p): Response => (new GetMatchView())->handle($r, $p); +$secret = (string) ($_SERVER['__csrf_secret'] ?? ''); +$postMatchMove = static function (Request $r, array $p) use ($secret): Response { + return (new PostMatchMove($secret))->handle($r, $p); +}; +$postMatchAttack = static function (Request $r, array $p) use ($secret): Response { + return (new PostMatchAttack($secret))->handle($r, $p); +}; +$postMatchAbility = static function (Request $r, array $p) use ($secret): Response { + return (new PostMatchAbility($secret))->handle($r, $p); +}; +$postMatchEndTurn = static function (Request $r, array $p) use ($secret): Response { + return (new PostMatchEndTurn($secret))->handle($r, $p); +}; $router = new Router(); $router->add('GET', '/', $homePage); +$router->add('GET', '/scenarios/bundled', $getBundledList); +$router->add('GET', '/scenarios/bundled/{id}', $getBundledOne); +$router->add('GET', '/matches/current', $getMatchView); +$router->add('POST', '/matches/current/move', $postMatchMove); +$router->add('POST', '/matches/current/attack', $postMatchAttack); +$router->add('POST', '/matches/current/ability', $postMatchAbility); +$router->add('POST', '/matches/current/end-turn', $postMatchEndTurn); $router->add('GET', '/scenarios/{id}/edit/team', $getTeam); $router->add('POST', '/scenarios/{id}/edit/team', $postTeam); $router->add('GET', '/scenarios/{id}/edit/battlefield', $getBattlefield);