First commit
This commit is contained in:
commit
c6e2478c40
13918 changed files with 2303184 additions and 0 deletions
141
sites/all/modules/civicrm/api/Exception.php
Normal file
141
sites/all/modules/civicrm/api/Exception.php
Normal file
|
@ -0,0 +1,141 @@
|
|||
<?php
|
||||
/**
|
||||
* @file
|
||||
* File for the CiviCRM APIv3 API wrapper
|
||||
*
|
||||
* @package CiviCRM_APIv3
|
||||
*
|
||||
* @copyright CiviCRM LLC (c) 2004-2017
|
||||
*/
|
||||
|
||||
/**
|
||||
* This api exception returns more information than the default one. The aim
|
||||
* it let the api consumer know better what is exactly the error without
|
||||
* having to parse the error message.
|
||||
*
|
||||
* If you consume an api that doesn't return an error_code or the extra data
|
||||
* you need, consider improving the api and contribute.
|
||||
*/
|
||||
class API_Exception extends Exception {
|
||||
const UNAUTHORIZED = 'unauthorized';
|
||||
const NOT_IMPLEMENTED = 'not-found';
|
||||
|
||||
private $extraParams = array();
|
||||
|
||||
/**
|
||||
* Class constructor.
|
||||
*
|
||||
* @param string $message
|
||||
* The human friendly error message.
|
||||
* @param mixed $error_code
|
||||
* A computer friendly error code. By convention, no space (but underscore
|
||||
* allowed) (ex: mandatory_missing, duplicate, invalid_format).
|
||||
* @param array $extraParams
|
||||
* Extra params to return. eg an extra array of ids. It is not mandatory,
|
||||
* but can help the computer using the api. Keep in mind the api consumer
|
||||
* isn't to be trusted. eg. the database password is NOT a good extra data.
|
||||
* @param Exception|NULL $previous
|
||||
* A previous exception which caused this new exception.
|
||||
*/
|
||||
public function __construct($message, $error_code = 0, $extraParams = array(), Exception $previous = NULL) {
|
||||
// Using int for error code "old way") ?
|
||||
if (is_numeric($error_code)) {
|
||||
$code = $error_code;
|
||||
}
|
||||
else {
|
||||
$code = 0;
|
||||
}
|
||||
parent::__construct(ts($message), $code, $previous);
|
||||
$this->extraParams = $extraParams + array('error_code' => $error_code);
|
||||
}
|
||||
|
||||
/**
|
||||
* Custom string representation of object.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function __toString() {
|
||||
return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* Get extra parameters.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getExtraParams() {
|
||||
return $this->extraParams;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get error codes.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getErrorCodes() {
|
||||
return array(
|
||||
2000 => '$params was not an array',
|
||||
2001 => 'Invalid Value for Date field',
|
||||
2100 => 'String value is longer than permitted length',
|
||||
self::UNAUTHORIZED => 'Unauthorized',
|
||||
self::NOT_IMPLEMENTED => 'Entity or method is not implemented',
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* This api exception returns more information than the default one. We are using it rather than
|
||||
* API_Exception from the api wrapper as the namespace is more generic
|
||||
*/
|
||||
class CiviCRM_API3_Exception extends Exception {
|
||||
private $extraParams = array();
|
||||
|
||||
/**
|
||||
* Class constructor.
|
||||
*
|
||||
* @param string $message
|
||||
* The human friendly error message.
|
||||
* @param mixed $error_code
|
||||
* A computer friendly error code. By convention, no space (but underscore
|
||||
* allowed) (ex: mandatory_missing, duplicate, invalid_format).
|
||||
* @param array $extraParams
|
||||
* Extra params to return. eg an extra array of ids. It is not mandatory,
|
||||
* but can help the computer using the api. Keep in mind the api consumer
|
||||
* isn't to be trusted. eg. the database password is NOT a good extra data.
|
||||
* @param Exception|NULL $previous
|
||||
* A previous exception which caused this new exception.
|
||||
*/
|
||||
public function __construct($message, $error_code, $extraParams = array(), Exception $previous = NULL) {
|
||||
parent::__construct(ts($message));
|
||||
$this->extraParams = $extraParams + array('error_code' => $error_code);
|
||||
}
|
||||
|
||||
/**
|
||||
* Custom string representation of object.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function __toString() {
|
||||
return __CLASS__ . ": [{$this->extraParams['error_code']}: {$this->message}\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* Get error code.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function getErrorCode() {
|
||||
return $this->extraParams['error_code'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get extra parameters.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getExtraParams() {
|
||||
return $this->extraParams;
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue