From 9788c5095a67a45fe3545ae0fc747b8e629ea4fd Mon Sep 17 00:00:00 2001 From: Igor Scheller Date: Tue, 13 Nov 2018 17:48:07 +0100 Subject: Implemented HttpException --- src/Middleware/ErrorHandler.php | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'src/Middleware') diff --git a/src/Middleware/ErrorHandler.php b/src/Middleware/ErrorHandler.php index a7c4cfe6..c99ac24f 100644 --- a/src/Middleware/ErrorHandler.php +++ b/src/Middleware/ErrorHandler.php @@ -2,6 +2,7 @@ namespace Engelsystem\Middleware; +use Engelsystem\Http\Exceptions\HttpException; use Engelsystem\Http\Response; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; @@ -38,7 +39,11 @@ class ErrorHandler implements MiddlewareInterface ServerRequestInterface $request, RequestHandlerInterface $handler ): ResponseInterface { - $response = $handler->handle($request); + try { + $response = $handler->handle($request); + } catch (HttpException $e) { + $response = $this->createResponse($e->getMessage(), $e->getStatusCode(), $e->getHeaders()); + } $statusCode = $response->getStatusCode(); if ($statusCode < 400 || !$response instanceof Response) { @@ -77,4 +82,18 @@ class ErrorHandler implements MiddlewareInterface return 'default'; } + + /** + * Create a new response + * + * @param string $content + * @param int $status + * @param array $headers + * @return Response + * @codeCoverageIgnore + */ + protected function createResponse(string $content = '', int $status = 200, array $headers = []) + { + return response($content, $status, $headers); + } } -- cgit v1.2.3-70-g09d2