/** * {@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); }