cloudwords-8.x-1.x-dev/src/CloudwordsApiException.php

src/CloudwordsApiException.php
<?php
namespace Drupal\cloudwords;

/**
 * Exception thrown when a call to the Cloudwords API returns an exception.
 *
 * @author Douglas Kim <doug@cloudwords.com>
 * @since 1.0
 */
class CloudwordsApiException extends Exception {

  const API_EXCEPTION = 'api_exception';
  const UNSUPPORTED_CONTENT_TYPE_EXCEPTION = 'unsupported_content_type_exception';
  const REQUEST_EXCEPTION = 'request_exception';
  const DEPENDENCY_EXCEPTION = 'dependency_exception';

  protected $exception_type;

  protected $http_status_code;

  protected $request_type;

  protected $request_url;

  protected $error_message;

  protected $content_type;

  public function __construct($exception_type, $params) {
    $this->exception_type = $exception_type;
    if ($exception_type == self::API_EXCEPTION) {
      $this->http_status_code = $params['http_status_code'];
      $this->request_type = $params['request_type'];
      $this->request_url = $params['request_url'];
      $this->error_message = $params['error_message'];
    }
    elseif ($exception_type == self::UNSUPPORTED_CONTENT_TYPE_EXCEPTION) {
      $this->content_type = $params['content_type'];
    }
    elseif ($exception_type == self::REQUEST_EXCEPTION) {
      $this->error_message = $params['error_message'];
    }
    elseif ($exception_type == self::DEPENDENCY_EXCEPTION) {
      $this->error_message = $params['error_message'];
    }
  }

  public function getExceptionType() {
    return $this->exception_type;
  }

  public function getHttpStatusCode() {
    return $this->http_status_code;
  }

  public function getRequestType() {
    return $this->request_type;
  }

  public function getRequestUrl() {
    return $this->request_url;
  }

  public function getErrorMessage() {
    return $this->error_message;
  }

  public function getContentType() {
    return $this->content_type;
  }

  public function __toString() {
    if ($this->exception_type == self::API_EXCEPTION) {
      return "Received HTTP status code " . $this->http_status_code . " from " . $this->request_type . " request at " . $this->request_url . "\n" .
             "Error: " . $this->error_message . "\n";
    }
    elseif ($this->exception_type == self::UNSUPPORTED_CONTENT_TYPE_EXCEPTION) {
      return "Unsupported content type '" . $this->content_type . "'\n";
    }
    elseif ($this->exception_type == self::REQUEST_EXCEPTION) {
      return "Malformed request : " . $this->error_message . "\n";
    }
    elseif ($this->exception_type == self::DEPENDENCY_EXCEPTION) {
      return $this->error_message . "\n";
    }
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc