/**
  * @test
  */
 public function shouldReturnRawBodyOnJsonError()
 {
     $expectedResponse = 'not{json}';
     $listenerResponse = $this->getmock('Guzzle\\Http\\Message\\Response', array(), array(200));
     $listenerResponse->expects($this->once())->method('getBody')->with(TRUE)->will($this->returnValue($expectedResponse));
     $this->assertEquals($expectedResponse, ResponseMediator::getContent($listenerResponse));
 }
Пример #2
0
 /**
  * {@inheritDoc}
  */
 public function onRequestError(Event $event)
 {
     /** @var $request \Guzzle\Http\Message\Request */
     $request = $event['request'];
     $response = $request->getResponse();
     if ($response->isClientError() || $response->isServerError()) {
         $content = ResponseMediator::getContent($response);
         if (is_array($content)) {
             $error = $content[0];
             if (400 == $response->getStatusCode()) {
                 if (isset($error['property']) && isset($error['requirement'])) {
                     throw new ErrorException(sprintf('%s - %s (%s)', $error['type'], $error['property'], $error['requirement']['type']), 400);
                 } else {
                     throw new ErrorException(sprintf('%s - %s', $error['type'], $error['message'] ? $error['message'] : json_encode($content)), 400);
                 }
             }
         } else {
             throw new RuntimeException(json_encode($content), $response->getStatusCode());
         }
     }
 }
Пример #3
0
 /**
  * {@inheritdoc}
  */
 protected function get($key)
 {
     if ($this->has($key)) {
         $url = key($this->pagination[$key]);
         $result = $this->client->getHttpClient()->get($url, $this->pagination[$key][$url]);
         $this->postFetch();
         return ResponseMediator::getContent($result);
     }
 }
Пример #4
0
 /**
  * Sends a DELETE request with JSON-encoded parameters.
  *
  * @param string $path
  *   The request path.
  *
  * @param array $parameters
  *   The POST parameters to be JSON encoded.
  *
  * @param array $requestHeaders
  *   The request headers.
  */
 protected function delete($path, array $parameters = array(), $requestHeaders = array())
 {
     $response = $this->client->getHttpClient()->delete($path, $this->createJsonBody($parameters), $requestHeaders);
     return ResponseMediator::getContent($response);
 }