diff options
Diffstat (limited to 'application/exceptions')
-rw-r--r-- | application/exceptions/ApiException.php | 35 | ||||
-rw-r--r-- | application/exceptions/FileUploadVerifyException.php | 23 | ||||
-rw-r--r-- | application/exceptions/InsufficientPermissionsException.php | 14 | ||||
-rw-r--r-- | application/exceptions/NotAuthenticatedException.php | 14 | ||||
-rw-r--r-- | application/exceptions/NotFoundException.php | 14 | ||||
-rw-r--r-- | application/exceptions/PublicApiException.php | 14 | ||||
-rw-r--r-- | application/exceptions/RequestTooBigException.php | 14 | ||||
-rw-r--r-- | application/exceptions/UserInputException.php | 14 | ||||
-rw-r--r-- | application/exceptions/VerifyException.php | 23 |
9 files changed, 165 insertions, 0 deletions
diff --git a/application/exceptions/ApiException.php b/application/exceptions/ApiException.php new file mode 100644 index 000000000..b1ec96117 --- /dev/null +++ b/application/exceptions/ApiException.php @@ -0,0 +1,35 @@ +<?php +/* + * Licensed under AGPLv3 + * (see COPYING for full license text) + * + */ +namespace exceptions; + +class ApiException extends \Exception { + private $error_id; + private $data; + + public function __construct($error_id, $message, $data = null, $previous = null) + { + parent::__construct($message, 0, $previous); + + $this->error_id = $error_id; + $this->data = $data; + } + + public function get_error_id() + { + return $this->error_id; + } + + public function get_data() + { + return $this->data; + } + + public function get_http_error_code() + { + return 500; + } +} diff --git a/application/exceptions/FileUploadVerifyException.php b/application/exceptions/FileUploadVerifyException.php new file mode 100644 index 000000000..5125e4822 --- /dev/null +++ b/application/exceptions/FileUploadVerifyException.php @@ -0,0 +1,23 @@ +<?php +/* + * Licensed under AGPLv3 + * (see COPYING for full license text) + * + */ +namespace exceptions; + +class FileUploadVerifyException extends VerifyException { + public function __toString() + { + $ret = $this->getMessage()."\n"; + $data = $this->get_data(); + $errors = array(); + + foreach ($data as $error) { + $errors[] = sprintf("%s: %s", $error["filename"], $error["message"]); + } + + $ret .= implode("\n", $errors); + return $ret; + } +} diff --git a/application/exceptions/InsufficientPermissionsException.php b/application/exceptions/InsufficientPermissionsException.php new file mode 100644 index 000000000..a036edf9d --- /dev/null +++ b/application/exceptions/InsufficientPermissionsException.php @@ -0,0 +1,14 @@ +<?php +/* + * Licensed under AGPLv3 + * (see COPYING for full license text) + * + */ +namespace exceptions; + +class InsufficientPermissionsException extends UserInputException { + public function get_http_error_code() + { + return 403; + } +} diff --git a/application/exceptions/NotAuthenticatedException.php b/application/exceptions/NotAuthenticatedException.php new file mode 100644 index 000000000..99ddd82fc --- /dev/null +++ b/application/exceptions/NotAuthenticatedException.php @@ -0,0 +1,14 @@ +<?php +/* + * Licensed under AGPLv3 + * (see COPYING for full license text) + * + */ +namespace exceptions; + +class NotAuthenticatedException extends UserInputException { + public function get_http_error_code() + { + return 403; + } +} diff --git a/application/exceptions/NotFoundException.php b/application/exceptions/NotFoundException.php new file mode 100644 index 000000000..c4b9d1537 --- /dev/null +++ b/application/exceptions/NotFoundException.php @@ -0,0 +1,14 @@ +<?php +/* + * Licensed under AGPLv3 + * (see COPYING for full license text) + * + */ +namespace exceptions; + +class NotFoundException extends UserInputException { + public function get_http_error_code() + { + return 404; + } +} diff --git a/application/exceptions/PublicApiException.php b/application/exceptions/PublicApiException.php new file mode 100644 index 000000000..d22309478 --- /dev/null +++ b/application/exceptions/PublicApiException.php @@ -0,0 +1,14 @@ +<?php +/* + * Licensed under AGPLv3 + * (see COPYING for full license text) + * + */ +namespace exceptions; + +class PublicApiException extends ApiException { + public function __toString() + { + return $this->getMessage(); + } +} diff --git a/application/exceptions/RequestTooBigException.php b/application/exceptions/RequestTooBigException.php new file mode 100644 index 000000000..ae2ab4d22 --- /dev/null +++ b/application/exceptions/RequestTooBigException.php @@ -0,0 +1,14 @@ +<?php +/* + * Licensed under AGPLv3 + * (see COPYING for full license text) + * + */ +namespace exceptions; + +class RequestTooBigException extends UserInputException { + public function get_http_error_code() + { + return 413; + } +} diff --git a/application/exceptions/UserInputException.php b/application/exceptions/UserInputException.php new file mode 100644 index 000000000..d4c327315 --- /dev/null +++ b/application/exceptions/UserInputException.php @@ -0,0 +1,14 @@ +<?php +/* + * Licensed under AGPLv3 + * (see COPYING for full license text) + * + */ +namespace exceptions; + +class UserInputException extends PublicApiException { + public function get_http_error_code() + { + return 400; + } +} diff --git a/application/exceptions/VerifyException.php b/application/exceptions/VerifyException.php new file mode 100644 index 000000000..0e9d8b93a --- /dev/null +++ b/application/exceptions/VerifyException.php @@ -0,0 +1,23 @@ +<?php +/* + * Licensed under AGPLv3 + * (see COPYING for full license text) + * + */ +namespace exceptions; + +class VerifyException extends UserInputException { + public function __toString() + { + $ret = $this->getMessage()."\n"; + $data = $this->get_data(); + $errors = array(); + + foreach ($data as $error) { + $errors[] = sprintf("%s: %s", $error["id"], $error["reason"]); + } + + $ret .= implode("\n", $errors); + return $ret; + } +} |