55 lines
1.2 KiB
PHP
55 lines
1.2 KiB
PHP
|
<?php
|
||
|
declare(strict_types=1);
|
||
|
|
||
|
namespace Mcp;
|
||
|
|
||
|
use Exception;
|
||
|
use Mcp\Middleware\Middleware;
|
||
|
|
||
|
abstract class RequestHandler
|
||
|
{
|
||
|
|
||
|
protected Mcp $app;
|
||
|
private ?Middleware $middleware;
|
||
|
|
||
|
public function __construct(Mcp $app, Middleware $mw = null)
|
||
|
{
|
||
|
$this->app = $app;
|
||
|
$this->middleware = $mw;
|
||
|
}
|
||
|
|
||
|
public function handleRequest(): void
|
||
|
{
|
||
|
if ($_SERVER['REQUEST_METHOD'] != 'GET' && $_SERVER['REQUEST_METHOD'] != 'POST') {
|
||
|
http_response_code(400);
|
||
|
exit();
|
||
|
}
|
||
|
|
||
|
if ($this->middleware != null) {
|
||
|
try {
|
||
|
if (!$this->middleware->canAccess()) {
|
||
|
$this->middleware->handleUnauthorized();
|
||
|
exit();
|
||
|
}
|
||
|
} catch (Exception $e) {
|
||
|
error_log("Middleware handling raised an exception: " + $e->getMessage());
|
||
|
http_response_code(500);
|
||
|
exit();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$_SERVER['REQUEST_METHOD'] == 'GET' ? $this->get() : $this->post();
|
||
|
}
|
||
|
|
||
|
public function get(): void
|
||
|
{
|
||
|
http_response_code(405);
|
||
|
}
|
||
|
|
||
|
public function post(): void
|
||
|
{
|
||
|
http_response_code(405);
|
||
|
}
|
||
|
|
||
|
}
|