summaryrefslogtreecommitdiffstats
path: root/lib/kolab_api_exception.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/kolab_api_exception.php')
-rw-r--r--lib/kolab_api_exception.php71
1 files changed, 71 insertions, 0 deletions
diff --git a/lib/kolab_api_exception.php b/lib/kolab_api_exception.php
new file mode 100644
index 0000000..c8d763d
--- /dev/null
+++ b/lib/kolab_api_exception.php
@@ -0,0 +1,71 @@
+<?php
+/*
+ +--------------------------------------------------------------------------+
+ | This file is part of the Kolab Web Admin Panel |
+ | |
+ | Copyright (C) 2011-2014, Kolab Systems AG |
+ | |
+ | This program is free software: you can redistribute it and/or modify |
+ | it under the terms of the GNU Affero General Public License as published |
+ | by the Free Software Foundation, either version 3 of the License, or |
+ | (at your option) any later version. |
+ | |
+ | This program is distributed in the hope that it will be useful, |
+ | but WITHOUT ANY WARRANTY; without even the implied warranty of |
+ | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
+ | GNU Affero General Public License for more details. |
+ | |
+ | You should have received a copy of the GNU Affero General Public License |
+ | along with this program. If not, see <http://www.gnu.org/licenses/> |
+ +--------------------------------------------------------------------------+
+ | Author: Aleksander Machniak <machniak@kolabsys.com> |
+ +--------------------------------------------------------------------------+
+*/
+
+/**
+ * Main exception class for Kolab Admin API responses
+ */
+class kolab_api_exception extends Exception
+{
+ const UNAUTHORIZED = 401;
+ const FORBIDDEN = 403;
+ const NOT_FOUND = 404;
+ const TIMEOUT = 408;
+ const DOMAIN_NOT_EMPTY = 450;
+ const SERVER_ERROR = 500;
+ const TEMP_ERROR = 503;
+
+ /**
+ * Constructor
+ */
+ function __construct()
+ {
+ $args = func_get_args();
+
+ if (isset($args[1])) {
+ $code = $args[1];
+ $message = $args[0];
+ }
+ else if (is_int($args[0])) {
+ $code = $args[0];
+ $message = null;
+ }
+ else {
+ $message = $args[0];
+ }
+
+ if (!$code) {
+ $code = self::SERVER_ERROR;
+ }
+
+ if (!$message) {
+ $message = kolab_api_controller::translate("error.$code");
+
+ if (!$message) {
+ $message = "Server error.";
+ }
+ }
+
+ parent::__construct($message, $code);
+ }
+}