/**
  * @param Response $response
  *
  * @throws Exception\ClientException
  *
  * @return mixed
  */
 protected function decodeBody(Response $response)
 {
     if ($response->isServerError()) {
         throw new Exception\ClientException(sprintf("'%s' provider encountered a '%s' error while querying '%s'", $this->getIdentifier(), $response->getReasonPhrase(), $this->uri));
     }
     $body = Json::decode($response->getBody());
     if ($response->isClientError()) {
         throw new Exception\ClientException($body->error->message, $response->getStatusCode());
     }
     return $body;
 }
Ejemplo n.º 2
0
 /**
  * Checks ReST response for errors.
  *
  * @param   Response $response    the ReST response
  * @return  void
  * @throws  Exception\RuntimeException
  * @access  protected
  */
 protected static function checkResponse(HttpResponse $response)
 {
     if ($response->isServerError() || $response->isClientError()) {
         throw new Exception\RuntimeException(sprintf('Invalid response status code (HTTP/%s %s %s)', $response->getVersion(), $response->getStatus(), $response->getMessage()));
     }
 }
Ejemplo n.º 3
0
 /**
  * Prepare a solarium response from the given request and client
  * response
  *
  * @throws HttpException
  * @param  Request             $request
  * @param  \Zend\Http\Response $response
  * @return Response
  */
 protected function prepareResponse($request, $response)
 {
     if ($response->isClientError()) {
         throw new HttpException($response->getReasonPhrase(), $response->getStatusCode());
     }
     if ($request->getMethod() == Request::METHOD_HEAD) {
         $data = '';
     } else {
         $data = $response->getBody();
     }
     // this is used because in ZF2 status line isn't in the headers anymore
     $headers = array($response->renderStatusLine());
     return new Response($data, $headers);
 }
Ejemplo n.º 4
0
 /**
  * @param  HttpResponse $response
  * @throws Exception\RuntimeException
  * @return array
  */
 private function parseResponse(HttpResponse $response)
 {
     $result = json_decode($response->getBody(), true);
     if ($response->isSuccess()) {
         return $result;
     }
     // There is a 4xx error
     if ($response->isClientError()) {
         if (isset($result['errors']) && is_array($result['errors'])) {
             $message = implode(', ', $result['errors']);
         } elseif (isset($result['error'])) {
             $message = $result['error'];
         } else {
             $message = 'Unknown error';
         }
         throw new Exception\RuntimeException(sprintf('An error occured on SendGrid (http code %s), message: %s', $response->getStatusCode(), $message));
     }
     // There is a 5xx error
     throw new Exception\RuntimeException('SendGrid server error, please try again');
 }
Ejemplo n.º 5
0
 private function handleException(Response $resp)
 {
     // TODO: test coverage
     if ($resp->isClientError()) {
         if ($resp->getStatusCode() === 403) {
             throw new AuthenticationException($this->apiKey, $this->apiSecret, null);
         } else {
             throw new DomainException('The OpenTok API request failed: ' . $resp->getReasonPhrase(), null);
         }
     } elseif ($resp->isServerError()) {
         throw new UnexpectedValueException('The OpenTok API server responded with an error: ' . $resp->getReasonPhrase(), null);
     } else {
         throw new Exception('An unexpected error occurred:' . $resp->getReasonPhrase());
     }
 }