This commit is contained in:
Chris Kankiewicz
2024-09-03 09:10:05 -07:00
parent b45f4329b5
commit ed99dd3a9b
2 changed files with 25 additions and 37 deletions

View File

@@ -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]);
});
}
}

View File

@@ -1,34 +0,0 @@
<?php
namespace App\Controllers;
use DI\Container;
use Psr\Http\Message\ResponseInterface;
use Slim\Psr7\Request;
use Slim\Psr7\Response;
class IndexController
{
/** Create a new IndexController object. */
public function __construct(
private Container $container
) {}
/** Invoke the IndexController. */
public function __invoke(Request $request, Response $response): ResponseInterface
{
switch (true) {
case array_key_exists('info', $request->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]);
}
}
}