/**
  * {@inheritDoc}
  */
 public function onRequestError(Event $event)
 {
     /** @var $request \Guzzle\Http\Message\Request */
     $request = $event['request'];
     $response = $request->getResponse();
     if ($response->isClientError() || $response->isServerError()) {
         $remaining = (string) $response->getHeader('X-Rate-Limit-Remaining');
         $limit = $response->getHeader('X-Rate-Limit-Limit');
         if (null != $remaining && 1 > $remaining && 'rate_limit' !== substr($request->getResource(), 1, 10)) {
             throw new ApiLimitExceedException($limit);
         }
         $content = ResponseMediator::getContent($response);
         throw new RuntimeException($content, $response->getStatusCode());
     }
 }
 /**
  * Send a DELETE request with JSON-encoded parameters.
  *
  * @param string $path Request path.
  * @param array $parameters POST parameters to be JSON encoded.
  * @param array $requestHeaders Request headers.
  * @return \Guzzle\Http\EntityBodyInterface|mixed|string
  */
 protected function delete($path, array $parameters = array(), $requestHeaders = array())
 {
     $response = $this->client->getHttpClient()->delete($path, $this->createJsonBody($parameters), $requestHeaders);
     return ResponseMediator::getContent($response, false);
 }