summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2014-01-16 11:19:38 (GMT)
committerAleksander Machniak <alec@alec.pl>2014-01-16 11:19:38 (GMT)
commit955f4186c5e3681226d01e5f4e77ff0af99f09d6 (patch)
treeda78920ec19f873751edc7273393a783a16044f0
parent3a77836aa6286df21d6a8eaf0c51e8f94b4fd584 (diff)
downloadkolab-wap-955f4186c5e3681226d01e5f4e77ff0af99f09d6.tar.gz
Add kolab_api_exception object for API responses
-rw-r--r--lib/kolab_api_exception.php71
-rw-r--r--lib/locale/en_US.php8
2 files changed, 79 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);
+ }
+}
diff --git a/lib/locale/en_US.php b/lib/locale/en_US.php
index bc42754..5e288e9 100644
--- a/lib/locale/en_US.php
+++ b/lib/locale/en_US.php
@@ -64,6 +64,14 @@ $LANG['domain.type_id'] = 'Standard Domain';
$LANG['edit'] = 'Edit';
$LANG['error'] = 'Error';
+$LANG['error.401'] = 'Unauthorized.';
+$LANG['error.403'] = 'Access forbidden.';
+$LANG['error.404'] = 'Object not found.';
+$LANG['error.408'] = 'Request timeout.';
+$LANG['error.450'] = 'Domain is not empty.';
+$LANG['error.500'] = 'Internal server error.';
+$LANG['error.503'] = 'Service unavailable. Try again later.';
+
$LANG['form.required.empty'] = 'Some of the required fields are empty!';
$LANG['form.maxcount.exceeded'] = 'Maximum count of items exceeded!';