/** * Execute API call and return the response * * @param $path * @param string $method * @param array $params * @param array $data * * @return mixed */ public function execute($path, $method = 'GET', array $params = [], $data = []) { $this->url = $this->httpConfig->getURL($path, $params); $client = new GuzzleHttpConnection(); $response = $client->execute($this->url, $method, static::prepareHeaders($data)); if ($method == 'GET') { self::$totalPageCount = $response->hasHeader('X-Pagination-Page-Count') ? (int) reset($response->getHeader('X-Pagination-Page-Count')) : 1; } return $this->parseResponse($response); }
/** * Execute guzzle method * * @param $url * @param $method * * @return bool * @throws \Exception */ public function execute($url, $method, $headers) { if (!array_key_exists($method, $this->requestMethods)) { throw new \Exception('Undefined method'); } try { $options = array_merge(['headers' => $headers['headers'], 'verify' => false], array_key_exists('data', $headers) ? $headers['data'] : []); $response = $this->client->request($this->requestMethods[$method], $url, $options); if ($response->getStatusCode() != 200 && $response->getStatusCode() != 201 && $response->getStatusCode() != 204) { throw new \Exception('Invalid respone code - ' . $response->getStatusCode()); } return $response; } catch (RequestException $e) { throw new \Exception($e->getMessage()); } }