From d69781a709383bc6983b627fac05495ad2d9d74e Mon Sep 17 00:00:00 2001 From: Clemens Schwaighofer Date: Mon, 13 Jun 2022 19:51:30 +0900 Subject: [PATCH] Move decodeExceptionMessage to Exceptions class The method "decodeExceptionMessage" previous located in the AmazonIncentives\AmazonIncentives main class has been moved to the AmazonIncentives\Exceptions\AmazonErrors where it logically belongs. A deprecation phpdoc message has been added for the current version. Update error messages in curl error part and remove double spaces. --- src/AmazonIncentives.php | 16 +++------------- src/Client/Client.php | 8 ++++---- src/Exceptions/AmazonErrors.php | 25 +++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 17 deletions(-) diff --git a/src/AmazonIncentives.php b/src/AmazonIncentives.php index ca8123b..7c92353 100644 --- a/src/AmazonIncentives.php +++ b/src/AmazonIncentives.php @@ -137,22 +137,12 @@ final class AmazonIncentives * * @param string $message Exception message json string * @return array Decoded with code, type, message fields + * + * @deprecated use \gullevek\AmazonIncentives\Exceptions\AmazonErrors::decodeExceptionMessage() */ public static function decodeExceptionMessage(string $message): array { - $message_ar = json_decode($message, true); - // if we have an error, build empty block and only fill message - if (json_last_error()) { - $message_ar = [ - 'status' => '', - 'code' => '', - 'type' => '', - 'message' => $message, - 'log_id' => '', - 'log' => [] - ]; - } - return $message_ar; + return AmazonErrors::decodeExceptionMessage($message); } // ********************************************************************* diff --git a/src/Client/Client.php b/src/Client/Client.php index 049ebc8..6b7b3f8 100644 --- a/src/Client/Client.php +++ b/src/Client/Client.php @@ -91,13 +91,13 @@ class Client implements ClientInterface case CURLE_COULDNT_CONNECT: case CURLE_COULDNT_RESOLVE_HOST: case CURLE_OPERATION_TIMEOUTED: - $message = 'Could not connect to AWS (' . $url . '). Please check your ' + $message = 'Could not connect to AWS (' . $url . '). Please check your ' . 'internet connection and try again. [' . $message . ']'; break; case CURLE_SSL_PEER_CERTIFICATE: - $message = 'Could not verify AWS SSL certificate. Please make sure ' - . 'that your network is not intercepting certificates. ' - . '(Try going to ' . $url . 'in your browser.) ' + $message = 'Could not verify AWS SSL certificate. Please make sure ' + . 'that your network is not intercepting certificates. ' + . '(Try going to ' . $url . 'in your browser.) ' . '[' . $message . ']'; break; case 0: diff --git a/src/Exceptions/AmazonErrors.php b/src/Exceptions/AmazonErrors.php index 67031db..936d975 100644 --- a/src/Exceptions/AmazonErrors.php +++ b/src/Exceptions/AmazonErrors.php @@ -39,6 +39,31 @@ final class AmazonErrors extends RuntimeException $_error_code ); } + + /** + * Decodes the Exception message body + * Returns an array with code (Amazon error codes), type (Amazon error info) + * message (Amazon returned error message string) + * + * @param string $message Exception message json string + * @return array Decoded with code, type, message fields + */ + public static function decodeExceptionMessage(string $message): array + { + $message_ar = json_decode($message, true); + // if we have an error, build empty block and only fill message + if (json_last_error()) { + $message_ar = [ + 'status' => '', + 'code' => '', + 'type' => '', + 'message' => $message, + 'log_id' => '', + 'log' => [] + ]; + } + return $message_ar; + } } // __END__