diff options
author | Florian Pritz <bluewind@xinu.at> | 2015-02-15 11:11:49 +0100 |
---|---|---|
committer | Florian Pritz <bluewind@xinu.at> | 2015-02-15 11:11:49 +0100 |
commit | 45c16c802720faf9de6c3028ba41753c5edba974 (patch) | |
tree | e20148091cf0f9b6ff11efe65a76cfe1d1bad24c /application/exceptions | |
parent | 9535ede862e01d834ebdd553184b1f6544b06d2c (diff) | |
parent | 01226a9afd760a920e9cb3377913ee296f0ab2ca (diff) |
Merge branch 'api-rework' into working
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..b3b9decff --- /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) + { + parent::__construct($message); + + $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..de26318d8 --- /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 401; + } +} 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; + } +} |