vendor/payum/core/Payum/Core/Exception/Http/HttpException.php line 8

Open in your IDE?
  1. <?php
  2. namespace Payum\Core\Exception\Http;
  3. use Payum\Core\Exception\RuntimeException;
  4. use Psr\Http\Message\RequestInterface;
  5. use Psr\Http\Message\ResponseInterface;
  6. class HttpException extends RuntimeException implements HttpExceptionInterface
  7. {
  8.     /**
  9.      * @var RequestInterface
  10.      */
  11.     protected $request;
  12.     /**
  13.      * @var ResponseInterface
  14.      */
  15.     protected $response;
  16.     /**
  17.      * {@inheritDoc}
  18.      */
  19.     public function setRequest(RequestInterface $request)
  20.     {
  21.         $this->request = $request;
  22.     }
  23.     /**
  24.      * {@inheritDoc}
  25.      */
  26.     public function getRequest()
  27.     {
  28.         return $this->request;
  29.     }
  30.     /**
  31.      * {@inheritDoc}
  32.      */
  33.     public function setResponse(ResponseInterface $response)
  34.     {
  35.         $this->response = $response;
  36.     }
  37.     /**
  38.      * {@inheritDoc}
  39.      */
  40.     public function getResponse()
  41.     {
  42.         return $this->response;
  43.     }
  44.     /**
  45.      * @param RequestInterface  $request
  46.      * @param ResponseInterface $response
  47.      *
  48.      * @return HttpException
  49.      */
  50.     public static function factory(RequestInterface $request, ResponseInterface $response)
  51.     {
  52.         if ($response->getStatusCode() >= 400 && $response->getStatusCode() < 500) {
  53.             $label = 'Client error response';
  54.         } elseif ($response->getStatusCode() >= 500 && $response->getStatusCode() < 600) {
  55.             $label = 'Server error response';
  56.         } else {
  57.             $label = 'Unsuccessful response';
  58.         }
  59.         $message = implode(PHP_EOL, array(
  60.             $label,
  61.             '[status code] '.$response->getStatusCode(),
  62.             '[reason phrase] '.$response->getReasonPhrase(),
  63.             '[url] '.$request->getUri(),
  64.         ));
  65.         $e = new static($message, $response->getStatusCode());
  66.         $e->setResponse($response);
  67.         $e->setRequest($request);
  68.         return $e;
  69.     }
  70. }