33 lines
No EOL
983 B
PHP
33 lines
No EOL
983 B
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
namespace GamesShop\Routing;
|
|
|
|
use GamesShop\ContainerHandler;
|
|
use GamesShop\Login\LoginHandler;
|
|
use GamesShop\Templates\TemplateEngine;
|
|
use Laminas\Diactoros\Response;
|
|
use Laminas\Diactoros\Response\RedirectResponse;
|
|
use Psr\Http\Message\ResponseInterface;
|
|
use Psr\Http\Message\ServerRequestInterface;
|
|
|
|
final class IndexRoute
|
|
{
|
|
public function __invoke(ServerRequestInterface $request): ResponseInterface {
|
|
$loginHandler = ContainerHandler::get(LoginHandler::class);
|
|
|
|
if (!$loginHandler->isLoggedIn()) {
|
|
return new RedirectResponse('/login');
|
|
}
|
|
|
|
$pageContent = ContainerHandler::get(TemplateEngine::class)->renderPage('index');
|
|
|
|
$response = new Response;
|
|
$response->getBody()->write($pageContent);
|
|
return $response;
|
|
}
|
|
|
|
public static function applyRoutes(\League\Route\Router $router): void {
|
|
$router->get('/', self::class);
|
|
}
|
|
} |