diff --git a/app/src/Bootstrap/RouteManager.php b/app/src/Bootstrap/RouteManager.php index 56e71f8..b9ad5d3 100644 --- a/app/src/Bootstrap/RouteManager.php +++ b/app/src/Bootstrap/RouteManager.php @@ -2,19 +2,41 @@ namespace App\Bootstrap; -use App\Controllers; +use App\Controllers\DirectoryController; +use App\Controllers\FileInfoController; +use App\Controllers\SearchController; +use App\Controllers\ZipController; +use DI\Container; +use Psr\Http\Message\ResponseInterface; use Slim\App; +use Slim\Psr7\Request; +use Slim\Psr7\Response; class RouteManager { /** Create a new RouteManager object. */ public function __construct( - private App $app + private App $app, + private Container $container ) {} /** Register the application routes. */ public function __invoke(): void { - $this->app->get('/[{path:.*}]', Controllers\IndexController::class); + $this->app->get('/[{path:.*}]', function (Request $request, Response $response): ResponseInterface { + if (array_key_exists('info', $request->getQueryParams())) { + return $this->container->call(FileInfoController::class, [$request, $response]); + } + + if (array_key_exists('search', $request->getQueryParams())) { + return $this->container->call(SearchController::class, [$request, $response]); + } + + if (array_key_exists('zip', $request->getQueryParams())) { + return $this->container->call(ZipController::class, [$request, $response]); + } + + return $this->container->call(DirectoryController::class, [$request, $response]); + }); } } diff --git a/app/src/Controllers/IndexController.php b/app/src/Controllers/IndexController.php deleted file mode 100644 index 86c39e4..0000000 --- a/app/src/Controllers/IndexController.php +++ /dev/null @@ -1,34 +0,0 @@ -getQueryParams()): - return $this->container->call(FileInfoController::class, [$request, $response]); - - case array_key_exists('search', $request->getQueryParams()): - return $this->container->call(SearchController::class, [$request, $response]); - - case array_key_exists('zip', $request->getQueryParams()): - return $this->container->call(ZipController::class, [$request, $response]); - - default: - return $this->container->call(DirectoryController::class, [$request, $response]); - } - } -}