Beispiel #1
0
 /**
  * @param ResponseInterface $response
  * @param $method
  * @param int $expectedResponseCode
  * @param $url
  * @return array
  * @throw CouchDbAdapter\Exceptions\CouchDbException
  */
 private function handleResponse(ResponseInterface $response, $method, $expectedResponseCode, $url)
 {
     if ($response->getStatusCode() == $expectedResponseCode) {
         $this->lastRequestHeaders = $response->getHeaders();
         $this->lastRequestBody = $response->getBody();
         return json_decode($this->lastRequestBody, true);
     }
     throw ClientExceptionFactory::factory($response, $method, $url);
 }
 /**
  * @param ResponseInterface $response
  * @param string $method
  * @param string $url
  */
 public function __construct(ResponseInterface $response, $method, $url)
 {
     if (!empty($response->getBody())) {
         $message = $response->getBody();
     }
     if (isset($message)) {
         $message .= " ({$method} {$url})";
     } else {
         $message = "{$method} {$url}";
     }
     parent::__construct($message, $response->getStatusCode());
 }
 /**
  * @param ResponseInterface $response
  * @param string $method
  * @param string $url
  * @return mixed
  */
 public static function factory(ResponseInterface $response, $method, $url)
 {
     if (!$response) {
         return new CouchDbNoResponseException();
     }
     if (in_array($response->getStatusCode(), self::COUCH_STATUS_CODES)) {
         $couchDbException = self::COUCH_STATUS_CODES[$response->getStatusCode()];
         return new $couchDbException($response, $method, $url);
     } else {
         return new CouchDbException($response, $method, $url);
     }
 }