mirror of
https://github.com/DirectoryLister/DirectoryLister.git
synced 2025-08-18 03:41:25 +02:00
WIP
This commit is contained in:
@@ -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]);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@@ -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]);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user