diff options
Diffstat (limited to 'library/oauth2-php/lib/OAuth2Exception.inc')
-rw-r--r-- | library/oauth2-php/lib/OAuth2Exception.inc | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/library/oauth2-php/lib/OAuth2Exception.inc b/library/oauth2-php/lib/OAuth2Exception.inc new file mode 100644 index 000000000..8dc046974 --- /dev/null +++ b/library/oauth2-php/lib/OAuth2Exception.inc @@ -0,0 +1,85 @@ +<?php + +/** + * OAuth2.0 draft v10 exception handling. + * + * @author Originally written by Naitik Shah <naitik@facebook.com>. + * @author Update to draft v10 by Edison Wong <hswong3i@pantarei-design.com>. + * + * @sa <a href="https://github.com/facebook/php-sdk">Facebook PHP SDK</a>. + */ +class OAuth2Exception extends Exception { + + /** + * The result from the API server that represents the exception information. + */ + protected $result; + + /** + * Make a new API Exception with the given result. + * + * @param $result + * The result from the API server. + */ + public function __construct($result) { + $this->result = $result; + + $code = isset($result['code']) ? $result['code'] : 0; + + if (isset($result['error'])) { + // OAuth 2.0 Draft 10 style + $message = $result['error']; + } + elseif (isset($result['message'])) { + // cURL style + $message = $result['message']; + } + else { + $message = 'Unknown Error. Check getResult()'; + } + + parent::__construct($message, $code); + } + + /** + * Return the associated result object returned by the API server. + * + * @returns + * The result from the API server. + */ + public function getResult() { + return $this->result; + } + + /** + * Returns the associated type for the error. This will default to + * 'Exception' when a type is not available. + * + * @return + * The type for the error. + */ + public function getType() { + if (isset($this->result['error'])) { + $message = $this->result['error']; + if (is_string($message)) { + // OAuth 2.0 Draft 10 style + return $message; + } + } + return 'Exception'; + } + + /** + * To make debugging easier. + * + * @returns + * The string representation of the error. + */ + public function __toString() { + $str = $this->getType() . ': '; + if ($this->code != 0) { + $str .= $this->code . ': '; + } + return $str . $this->message; + } +} |