/** * * @param \Guzzle\Http\Exception\ClientErrorResponseException $e * @throws Exception\NotFoundException * @throws \Guzzle\Http\Exception\ClientErrorResponseException */ protected function handleResponseException(ClientErrorResponseException $e) { switch ($e->getResponse()->getStatusCode()) { case 400: throw new Exception\InvalidRequestException('Invalid request', 400, $e); case 403: throw new Exception\PermissionDeniedException('Permission denied', 403, $e); case 404: throw new Exception\NotFoundException('Item does not exist', 404, $e); default: throw $e; } }
/** * @param $e * @return bool */ public function handleException(\Guzzle\Http\Exception\ClientErrorResponseException $e) { $response = $e->getResponse(); $this->errorQueue->enqueue($response->getBody(true)); return false; }
private function processClientError(ClientErrorResponseException $e) { $statusCode = $e->getResponse()->getStatusCode(); $reasonPhrase = $e->getResponse()->getReasonPhrase(); $error = null; $message = sprintf('Your request in not valid (status code: "%d", reason phrase: "%s").', $statusCode, $reasonPhrase); if (400 == $statusCode) { $error = $this->parser->parseError((string) $e->getResponse()->getBody()); $message .= 'See $error attached to the exception'; } throw new ApiClientException($message, $error, 0, $e); }
/** * @param ClientErrorResponseException $e */ protected function handleNotFoundException(ClientErrorResponseException $e) { if ($e->getResponse()->getStatusCode() !== 404) { throw $e; } }
/** * @param \Guzzle\Http\Exception\ClientErrorResponseException $exception * @throws \Searchperience\Common\Http\Exception\InternalServerErrorException * @throws \Searchperience\Common\Http\Exception\ForbiddenException * @throws \Searchperience\Common\Http\Exception\ClientErrorResponseException * @throws \Searchperience\Common\Http\Exception\DocumentNotFoundException * @throws \Searchperience\Common\Http\Exception\UnauthorizedException * @throws \Searchperience\Common\Http\Exception\MethodNotAllowedException * @throws \Searchperience\Common\Http\Exception\RequestEntityTooLargeException * @return void */ protected function transformStatusCodeToClientErrorResponseException(\Guzzle\Http\Exception\ClientErrorResponseException $exception) { switch ($exception->getResponse()->getStatusCode()) { case 401: $e = new \Searchperience\Common\Http\Exception\UnauthorizedException($exception->getMessage(), 1353574907, $exception); $e->setResponse($exception->getResponse()); throw $e; break; case 403: $e = new \Searchperience\Common\Http\Exception\ForbiddenException($exception->getMessage(), 1353574915, $exception); $e->setResponse($exception->getResponse()); throw $e; break; case 404: $e = new \Searchperience\Common\Http\Exception\EntityNotFoundException($exception->getMessage(), 1353574919, $exception); $e->setResponse($exception->getResponse()); throw $e; break; case 405: $e = new \Searchperience\Common\Http\Exception\MethodNotAllowedException($exception->getMessage(), 1353574923, $exception); $e->setResponse($exception->getResponse()); throw $e; break; case 413: $e = new \Searchperience\Common\Http\Exception\RequestEntityTooLargeException($exception->getMessage(), 1353574956, $exception); $e->setResponse($exception->getResponse()); throw $e; break; default: $e = new \Searchperience\Common\Http\Exception\ClientErrorResponseException($exception->getMessage(), 1353574962, $exception); $e->setResponse($exception->getResponse()); throw $e; } }