1
0
Fork 0
Manager/app/RequestHandler.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);
}
}