diff --git a/src/Abstracts/AbstractApiFormat.php b/src/Abstracts/AbstractApiFormat.php index e0d0539..1dfca59 100644 --- a/src/Abstracts/AbstractApiFormat.php +++ b/src/Abstracts/AbstractApiFormat.php @@ -73,12 +73,12 @@ public function decode(ResponseInterface $raw, $totalTime = 0) ); } - if(!isset( - $result->type, - $result->status, - $result->status->message, - $result->status->code, - $result->result) + if( + !property_exists($result, 'type') + || !property_exists($result, 'status') + || !property_exists($result, 'result') + || !property_exists($result->status, 'message') + || !property_exists($result->status, 'code') ) { throw new InvalidApiResponseException("Invalid api result", 500); diff --git a/src/Response/ResponseBuilder.php b/src/Response/ResponseBuilder.php index da6255a..e9d28c6 100644 --- a/src/Response/ResponseBuilder.php +++ b/src/Response/ResponseBuilder.php @@ -16,9 +16,11 @@ public static function create(ApiCallData $data) { $type = $data->getResponseType(); $interfaces = class_implements($type); - if(in_array('Packaged\Api\Interfaces\ApiExceptionInterface', $interfaces)) + if($type === '\Packaged\Api\Exceptions\ApiException' + || in_array('\Packaged\Api\Exceptions\ApiException', $interfaces) + ) { - return new $type($data->getStatusCode(), $data->getStatusMessage()); + throw new $type($data->getStatusMessage(), $data->getStatusCode()); } else if(in_array( 'Packaged\Api\Interfaces\ApiResponseInterface',