Example #1
0
 /**
  * {@inheritdoc}
  * @see \Scalr\Service\Azure\Client\ClientResponseInterface::hasError()
  */
 public function hasError()
 {
     if (!isset($this->errorData)) {
         $this->errorData = false;
         $code = $this->getResponseCode();
         if ($code < 200 || $code > 299) {
             $this->errorData = new ErrorData();
             $responseObj = json_decode($this->getContent());
             if (empty($responseObj)) {
                 $this->errorData->message = 'Bad server response: ' . $this->getResponseStatus();
                 $this->errorData->code = $code;
             }
             $errFieldName = 'odata.error';
             if (isset($responseObj->error)) {
                 $this->errorData->message = $responseObj->error->message;
                 $this->errorData->code = $responseObj->error->code;
             } else {
                 if (isset($responseObj->{$errFieldName}) && $responseObj->{$errFieldName}->message->value) {
                     $this->errorData->message = $responseObj->{$errFieldName}->message->value;
                     $this->errorData->code = $responseObj->{$errFieldName}->code;
                 } else {
                     if (isset($responseObj->message)) {
                         $this->errorData->message = $responseObj->message;
                         $this->errorData->code = $responseObj->code;
                     }
                 }
             }
             throw AzureResponseErrorFactory::make($this->errorData, $code);
         } else {
             if ($code == 204 && $this->request->getRequestMethod() == 'DELETE') {
                 throw new NotFoundException('Azure error. The Resource was not found.', 404);
             }
         }
     }
     return $this->errorData instanceof ErrorData;
 }