mirror of
https://github.com/KevinMidboe/rohnenedre.git
synced 2025-12-08 20:39:02 +00:00
131 lines
3.5 KiB
PHP
131 lines
3.5 KiB
PHP
<?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.");
|
|
}
|
|
|
|
}
|