diff options
author | Jakub Piasecki <jakub@nymedia.no> | 2016-03-08 14:42:16 +0100 |
---|---|---|
committer | Jakub Piasecki <jakub@nymedia.no> | 2016-03-08 14:42:16 +0100 |
commit | b91a2f6d0ddc81442c7ea51ae54e03d8c31f373f (patch) | |
tree | 3e2bafb67f59d63ecdc8391f3e38845266b54e26 /lib/SparkPost/APIResource.php | |
parent | e3f286a4d0ca70050136eee8482b6ab4c5032d3e (diff) | |
download | php-sparkpost-b91a2f6d0ddc81442c7ea51ae54e03d8c31f373f.zip php-sparkpost-b91a2f6d0ddc81442c7ea51ae54e03d8c31f373f.tar.gz php-sparkpost-b91a2f6d0ddc81442c7ea51ae54e03d8c31f373f.tar.bz2 |
Improve APIResponseException class
Diffstat (limited to 'lib/SparkPost/APIResource.php')
-rw-r--r-- | lib/SparkPost/APIResource.php | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/lib/SparkPost/APIResource.php b/lib/SparkPost/APIResource.php index d02b91e..20e7b19 100644 --- a/lib/SparkPost/APIResource.php +++ b/lib/SparkPost/APIResource.php @@ -192,11 +192,19 @@ class APIResource { // Handle 4XX responses, 5XX responses will throw an HttpAdapterException if ($statusCode < 400) { return json_decode($response->getBody()->getContents(), true); - } else { - if ($statusCode === 404) { - throw new APIResponseException('The specified resource does not exist', 404); - } - throw new APIResponseException('Received bad response from ' . ucfirst($this->endpoint) . ' API: '. $statusCode ); + } + elseif ($statusCode === 404) { + throw new APIResponseException('The specified resource does not exist', 404); + } + else { + $response = json_decode($response->getBody(), true); + throw new APIResponseException( + 'Received bad response from ' . ucfirst($this->endpoint), + $statusCode, + isset($response['errors'][0]['message']) ? $response['errors'][0]['message'] : "", + isset($response['errors'][0]['code']) ? $response['errors'][0]['code'] : 0, + isset($response['errors'][0]['description']) ? $response['errors'][0]['description'] : "" + ); } } @@ -208,7 +216,7 @@ class APIResource { throw $exception; } - throw new APIResponseException('Unable to contact ' . ucfirst($this->endpoint) . ' API: '. $exception->getMessage()); + throw new APIResponseException('Unable to contact ' . ucfirst($this->endpoint) . ' API: '. $exception->getMessage(), $exception->getCode()); } } |