Exemplo n.º 1
0
 public function doRequest($url, array $params = array())
 {
     if (empty($params)) {
         $postData = '';
     } else {
         $postData = json_encode($params);
     }
     $sign = sha1($this->apiKey . '/' . $this->prefix . $url . $postData . $this->apiSecret);
     if ($postData) {
         $request = new \Buzz\Message\Request('POST', $this->prefix . $url, $this->host);
         $request->setContent($postData);
     } else {
         $request = new \Buzz\Message\Request('GET', $this->prefix . $url, $this->host);
     }
     $request->setHeaders(array('X-Rest-ApiKey' => $this->apiKey, 'X-Rest-ApiSign' => $sign, 'Content-Type' => 'application/json'));
     $response = new \Buzz\Message\Response();
     $this->buzzBrowser->send($request, $response);
     $responseData = json_decode($response->getContent(), true);
     if (!$response->isOk()) {
         $errors = $responseData['errors'];
         if (is_array($errors)) {
             foreach ($errors as $e) {
                 throw new RestException($e['message'], $e['code']);
             }
         }
     }
     if (is_array($responseData) == false) {
         throw new \Exception('Invalid json response');
     }
     return $responseData;
 }