| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- <?php
- class AWeberException extends Exception { }
- /**
- * Thrown when the API returns an error. (HTTP status >= 400)
- *
- *
- * @uses AWeberException
- * @package
- * @version $id$
- */
- class AWeberAPIException extends AWeberException {
- public $type;
- public $status;
- public $message;
- public $documentation_url;
- public $url;
- public function __construct($error, $url) {
- // record specific details of the API exception for processing
- $this->url = $url;
- $this->type = $error['type'];
- $this->status = array_key_exists('status', $error) ? $error['status'] : '';
- $this->message = $error['message'];
- $this->documentation_url = $error['documentation_url'];
- parent::__construct($this->message);
- }
- }
- /**
- * Thrown when attempting to use a resource that is not implemented.
- *
- * @uses AWeberException
- * @package
- * @version $id$
- */
- class AWeberResourceNotImplemented extends AWeberException {
- public function __construct($object, $value) {
- $this->object = $object;
- $this->value = $value;
- parent::__construct("Resource \"{$value}\" is not implemented on this resource.");
- }
- }
- /**
- * AWeberMethodNotImplemented
- *
- * Thrown when attempting to call a method that is not implemented for a resource
- * / collection. Differs from standard method not defined errors, as this will
- * be thrown when the method is infact implemented on the base class, but the
- * current resource type does not provide access to that method (ie calling
- * getByMessageNumber on a web_forms collection).
- *
- * @uses AWeberException
- * @package
- * @version $id$
- */
- class AWeberMethodNotImplemented extends AWeberException {
- public function __construct($object) {
- $this->object = $object;
- parent::__construct("This method is not implemented by the current resource.");
- }
- }
- /**
- * AWeberOAuthException
- *
- * OAuth exception, as generated by an API JSON error response
- * @uses AWeberException
- * @package
- * @version $id$
- */
- class AWeberOAuthException extends AWeberException {
- public function __construct($type, $message) {
- $this->type = $type;
- $this->message = $message;
- parent::__construct("{$type}: {$message}");
- }
- }
- /**
- * AWeberOAuthDataMissing
- *
- * Used when a specific piece or pieces of data was not found in the
- * response. This differs from the exception that might be thrown as
- * an AWeberOAuthException when parameters are not provided because
- * it is not the servers' expectations that were not met, but rather
- * the expecations of the client were not met by the server.
- *
- * @uses AWeberException
- * @package
- * @version $id$
- */
- class AWeberOAuthDataMissing extends AWeberException {
- public function __construct($missing) {
- if (!is_array($missing)) $missing = array($missing);
- $this->missing = $missing;
- $required = join(', ', $this->missing);
- parent::__construct("OAuthDataMissing: Response was expected to contain: {$required}");
- }
- }
- /**
- * AWeberResponseError
- *
- * This is raised when the server returns a non-JSON response. This
- * should only occur when there is a server or some type of connectivity
- * issue.
- *
- * @uses AWeberException
- * @package
- * @version $id$
- */
- class AWeberResponseError extends AWeberException {
- public function __construct($uri) {
- $this->uri = $uri;
- parent::__construct("Request for {$uri} did not respond properly.");
- }
- }
|