apiKey = $apiKey; $this->apiEndpoint = $apiHost; } public function post($endpointUrl, array $postData = [], $files = []) { return $this->testResponseHandler($endpointUrl, $httpResponseCode = 200); } public function get($endpointUrl, $queryString = []) { return $this->testResponseHandler($endpointUrl, $httpResponseCode = 200); } public function delete($endpointUrl) { return $this->testResponseHandler($endpointUrl, $httpResponseCode = 200); } public function put($endpointUrl, $queryString) { return $this->testResponseHandler($endpointUrl, $httpResponseCode = 200); } public function testResponseHandler($endpointUrl, $httpResponseCode = 200) { if (200 === $httpResponseCode) { $result = new \stdClass(); $result->http_response_body = new \stdClass(); $jsonResponseData = json_decode('{"message": "Some JSON Response Data", "id": "1234"}'); foreach ($jsonResponseData as $key => $value) { $result->http_response_body->$key = $value; } } elseif (400 == $httpResponseCode) { throw new MissingRequiredMIMEParameters(EXCEPTION_MISSING_REQUIRED_MIME_PARAMETERS); } elseif (401 == $httpResponseCode) { throw new InvalidCredentials(EXCEPTION_INVALID_CREDENTIALS); } elseif (401 == $httpResponseCode) { throw new GenericHTTPError(EXCEPTION_INVALID_CREDENTIALS); } elseif (404 == $httpResponseCode) { throw new MissingEndpoint(EXCEPTION_MISSING_ENDPOINT); } else { throw new GenericHTTPError(EXCEPTION_GENERIC_HTTP_ERROR); return false; } $result->http_response_code = $httpResponseCode; $result->http_endpoint_url = $endpointUrl; return $result; } }