From 4d2a0bf578af2105c667a1758c897f9c06243817 Mon Sep 17 00:00:00 2001 From: Roussetos Karafyllakis <35-roussks@users.noreply.git.upmind.io> Date: Wed, 8 Jan 2025 12:35:10 +0200 Subject: [PATCH] throw JsonException if cannot parse json, and handle it as provision function error --- composer.json | 1 + src/Webuzo/Api.php | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index dd34949..74cc507 100644 --- a/composer.json +++ b/composer.json @@ -22,6 +22,7 @@ "upmind/enhance-sdk": "^10", "giggsey/libphonenumber-for-php-lite": "^8", "ext-curl": "*", + "ext-json": "*", "ext-soap": "*" }, "require-dev": { diff --git a/src/Webuzo/Api.php b/src/Webuzo/Api.php index ec4fcdd..df90852 100644 --- a/src/Webuzo/Api.php +++ b/src/Webuzo/Api.php @@ -74,7 +74,14 @@ public function makeRequest( */ private function parseResponseData(string $response): array { - $parsedResult = json_decode($response, true); + try { + $parsedResult = json_decode($response, true, 512, JSON_THROW_ON_ERROR); + } catch (JsonException $e) { + throw ProvisionFunctionError::create('Failed to parse response data', $e) + ->withData([ + 'response' => $response, + ]); + } if ($error = $this->getResponseErrorMessage($parsedResult)) { throw ProvisionFunctionError::create($error)