@@ 22-57 (lines=36) @@ | ||
19 | * Class GenericRouterGenericServerHTTPServer |
|
20 | * @package LunixREST |
|
21 | */ |
|
22 | class GenericRouterGenericServerHTTPServer extends GenericServerHTTPServer |
|
23 | { |
|
24 | public function __construct(GenericRouterGenericServer $server, RequestFactory $requestFactory, LoggerInterface $logger) |
|
25 | { |
|
26 | parent::__construct($server, $requestFactory, $logger); |
|
27 | } |
|
28 | ||
29 | protected function handleServerException(UnableToHandleRequestException $exception, ResponseInterface $response): ResponseInterface |
|
30 | { |
|
31 | if($exception instanceof InvalidRequestException) { |
|
32 | $this->logCaughtThrowableResultingInHTTPCode(400, $exception, LogLevel::INFO); |
|
33 | return $response->withStatus(400, "Bad Request"); |
|
34 | ||
35 | } elseif( |
|
36 | $exception instanceof ElementNotFoundException || |
|
37 | $exception instanceof UnsupportedMethodException || |
|
38 | $exception instanceof UnableToCreateEndpointException |
|
39 | ) { |
|
40 | $this->logCaughtThrowableResultingInHTTPCode(404, $exception, LogLevel::INFO); |
|
41 | return $response->withStatus(404, "Not Found"); |
|
42 | ||
43 | } elseif($exception instanceof ElementConflictException) { |
|
44 | $this->logCaughtThrowableResultingInHTTPCode(409, $exception, LogLevel::NOTICE); |
|
45 | return $response->withStatus(409, "Conflict"); |
|
46 | ||
47 | } elseif( |
|
48 | $exception instanceof MethodNotFoundException || |
|
49 | $exception instanceof EndpointExecutionException |
|
50 | ) { |
|
51 | $this->logCaughtThrowableResultingInHTTPCode(500, $exception, LogLevel::CRITICAL); |
|
52 | return $response->withStatus(500, "Internal Server Error"); |
|
53 | } |
|
54 | ||
55 | return parent::handleServerException($exception, $response); |
|
56 | } |
|
57 | } |
|
58 |
@@ 22-64 (lines=43) @@ | ||
19 | * Class GenericServerHTTPServer |
|
20 | * @package LunixREST |
|
21 | */ |
|
22 | class GenericServerHTTPServer extends HTTPServer |
|
23 | { |
|
24 | /** |
|
25 | * GenericServerHTTPServer constructor. |
|
26 | * @param GenericServer $server |
|
27 | * @param RequestFactory $requestFactory |
|
28 | * @param LoggerInterface $logger |
|
29 | */ |
|
30 | public function __construct(GenericServer $server, RequestFactory $requestFactory, LoggerInterface $logger) |
|
31 | { |
|
32 | parent::__construct($server, $requestFactory, $logger); |
|
33 | } |
|
34 | ||
35 | /** |
|
36 | * @param UnableToHandleRequestException $exception |
|
37 | * @param ResponseInterface $response |
|
38 | * @return ResponseInterface |
|
39 | */ |
|
40 | protected function handleServerException(UnableToHandleRequestException $exception, ResponseInterface $response): ResponseInterface |
|
41 | { |
|
42 | if($exception instanceof InvalidAPIKeyException || $exception instanceof AccessDeniedException) { |
|
43 | $this->logCaughtThrowableResultingInHTTPCode(403, $exception, LogLevel::NOTICE); |
|
44 | return $response->withStatus(403, "Access Denied"); |
|
45 | ||
46 | } elseif($exception instanceof ThrottleLimitExceededException) { |
|
47 | $this->logCaughtThrowableResultingInHTTPCode(429, $exception, LogLevel::WARNING); |
|
48 | return $response->withStatus(429, "Too Many Requests"); |
|
49 | ||
50 | } elseif($exception instanceof NotAcceptableResponseTypeException) { |
|
51 | $this->logCaughtThrowableResultingInHTTPCode(406, $exception, LogLevel::INFO); |
|
52 | return $response->withStatus(406, "Not Acceptable"); |
|
53 | ||
54 | } elseif( |
|
55 | $exception instanceof UnableToCreateAPIResponseException || |
|
56 | $exception instanceof UnableToRouteRequestException |
|
57 | ) { |
|
58 | $this->logCaughtThrowableResultingInHTTPCode(500, $exception, LogLevel::CRITICAL); |
|
59 | return $response->withStatus(500, "Internal Server Error"); |
|
60 | } |
|
61 | ||
62 | return parent::handleServerException($exception, $response); |
|
63 | } |
|
64 | } |
|
65 | ||
66 |