Code Duplication    Length = 36-43 lines in 2 locations

src/GenericRouterGenericServerHTTPServer.php 1 location

@@ 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

src/GenericServerHTTPServer.php 1 location

@@ 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