PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.4.6
Booking for Appointments and Events Calendar – Amelia v2.4.6
2.4.7 2.4.6 2.4.5 2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / src / Infrastructure / Common / AmeliaErrorHandler.php
ameliabooking / src / Infrastructure / Common Last commit date
Exceptions 7 months ago AmeliaErrorHandler.php 4 weeks ago Container.php 2 months ago
AmeliaErrorHandler.php
48 lines
1 <?php
2
3 /**
4 * @copyright © Melograno Ventures. All rights reserved.
5 * @licence See COPYING.md for license details.
6 */
7
8 namespace AmeliaBooking\Infrastructure\Common;
9
10 use AmeliaBooking\Application\Common\Exceptions\AccessDeniedException;
11 use AmeliaBooking\Application\Controller\Controller;
12 use AmeliaBooking\Infrastructure\Common\Exceptions\NotFoundException;
13 use AmeliaVendor\Psr\Http\Message\ResponseInterface;
14 use Slim\Exception\HttpException;
15 use Slim\Handlers\ErrorHandler;
16
17 class AmeliaErrorHandler extends ErrorHandler
18 {
19 protected function respond(): ResponseInterface
20 {
21 $exception = $this->exception;
22 $request = $this->request;
23
24 if ($exception instanceof AccessDeniedException) {
25 $status = Controller::STATUS_FORBIDDEN;
26 } elseif ($exception instanceof NotFoundException) {
27 $status = Controller::STATUS_NOT_FOUNT;
28 } elseif ($exception instanceof HttpException) {
29 $status = $exception->getCode();
30 } else {
31 $status = Controller::STATUS_INTERNAL_SERVER_ERROR;
32 }
33
34 $responseMessage = ['message' => $exception->getMessage()];
35
36 $queryParams = $request->getQueryParams();
37 if (!empty($queryParams['showAmeliaSqlExceptions'])) {
38 $prev = $exception->getPrevious();
39 $responseMessage['exception'] = $prev ? $prev->getMessage() : '';
40 }
41
42 $response = $this->responseFactory->createResponse($status);
43 $response->getBody()->write(json_encode($responseMessage));
44
45 return $response->withHeader('Content-Type', 'application/json');
46 }
47 }
48