From 70d467955a498d500d37a9735084182912708765 Mon Sep 17 00:00:00 2001 From: Tobias Nyholm Date: Sun, 26 Mar 2017 17:26:57 +0200 Subject: [PATCH] Make error responses accessable (#312) --- src/Mailgun/Exception/HttpClientException.php | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/Mailgun/Exception/HttpClientException.php b/src/Mailgun/Exception/HttpClientException.php index 8db2469..1dedffc 100644 --- a/src/Mailgun/Exception/HttpClientException.php +++ b/src/Mailgun/Exception/HttpClientException.php @@ -22,6 +22,11 @@ final class HttpClientException extends \RuntimeException implements Exception */ private $response; + /** + * @var array + */ + private $responseBody; + /** * @param string $message * @param int $code @@ -30,7 +35,16 @@ final class HttpClientException extends \RuntimeException implements Exception public function __construct($message, $code, ResponseInterface $response = null) { parent::__construct($message, $code); - $this->response = $response; + + if ($response) { + $this->response = $response; + $body = $response->getBody()->__toString(); + if (strpos($response->getHeaderLine('Content-Type'), 'application/json') !== 0) { + $this->responseBody['message'] = $body; + } else { + $this->responseBody = json_decode($body, true); + } + } } public static function badRequest(ResponseInterface $response = null) @@ -60,4 +74,12 @@ final class HttpClientException extends \RuntimeException implements Exception { return $this->response; } + + /** + * @return array + */ + public function getResponseBody() + { + return $this->responseBody; + } }