andre 5 месяцев назад
Родитель
Сommit
baf942e6c1
2 измененных файлов с 54 добавлено и 17 удалено
  1. 22 4
      api/class/KerioApi.php
  2. 32 13
      app/UI/Client/EmailAccount/Providers/AccountDataProvider.php

+ 22 - 4
api/class/KerioApi.php

@@ -533,22 +533,40 @@ class KerioApi implements KerioApiInterface {
 
 		/* Handle errors */
 		if (isset($response['error'])) {
-			if (FALSE === empty($response['error'])) {
+
+			logModuleCall(
+                'kerioEmail',
+                __FUNCTION__,
+                $rawResponse,
+                'Debug Error1',
+                $response
+            );
+
+/*			if (FALSE === empty($response['error'])) {
 				$message	= $response['error']['message'];
 				$code		= $response['error']['code'];
 				$params = (isset($response['error']['data']))
 					? $response['error']['data']['messageParameters']['positionalParameters']
 					: '';
 				throw new KerioApiException($message, $code, $params, $data, $body);
-			}
+			} */
 		}
 		elseif (isset($response['result']['errors'])) {
-			if (FALSE === empty($response['result']['errors'])) {
+
+			logModuleCall(
+                'kerioEmail',
+                __FUNCTION__,
+                $rawResponse,
+                'Debug Error2',
+                $response
+            );
+
+/*			if (FALSE === empty($response['result']['errors'])) {
 				$message	= $response['result']['errors'][0]['message'];
 				$code		= $response['result']['errors'][0]['code'];
 				$params		= $response['result']['errors'][0]['messageParameters']['positionalParameters'];
 				throw new KerioApiException($message, $code, $params, $data, $body);
-			}
+			} */
 		}
 
 		/* Handle Cookies */

+ 32 - 13
app/UI/Client/EmailAccount/Providers/AccountDataProvider.php

@@ -62,20 +62,18 @@ class AccountDataProvider extends BaseDataProvider
             return "Error: Domain $maildomain not found";
         }
         $active = $this->formData['status'] === 'active' ? TRUE : FALSE;
-        $response = $api->createUser($domainID, $this->formData['username'], $this->formData['password'], $active)['result'][0]['id'];
-
+        try {
+            $userID = $api->createUser($domainID, $this->formData['username'], $this->formData['password'], $active)['result'][0]['id'];
+        } catch (KerioApiException $error) {
             logModuleCall(
                 'kerioEmail',
                 __FUNCTION__,
-                $this->formData,
-                'Debug Response',
-                $response
+                $error,
+                'Debug Error',
+                $error->getMessage()
             );
-
-                return (new HtmlDataJsonResponse())->setMessageAndTranslate('emailAccountHasBeenAdded')->setStatusSuccess();
-
-        $userID = $response;
-
+            return ['error' => $error->getMessage()];
+        }             
         $account['fullName'] = $this->formData['display_name'];
         if ($this->formData['quota'] > 0) {
             $account['diskSizeLimit']['isActive'] = TRUE;
@@ -84,8 +82,18 @@ class AccountDataProvider extends BaseDataProvider
         }
         $account['diskSizeLimit']['limit']['value'] = intval($this->formData['quota']);
         $account['diskSizeLimit']['limit']['units'] = $this->formData['unit'];
-
-        $result = $api->modifyUser($userID, $account);
+        try {
+            $result = $api->modifyUser($userID, $account);
+        } catch (KerioApiException $error) {
+            logModuleCall(
+                'kerioEmail',
+                __FUNCTION__,
+                $error,
+                'Debug Error',
+                $error->getMessage()
+            );
+            return ['error' => $error->getMessage()];
+        }
         $fields['firstName'] = $this->formData['firstname'];
         $fields['surName'] = $this->formData['lastname'];
         $fields['commonName'] = $this->formData['display_name'];
@@ -95,7 +103,18 @@ class AccountDataProvider extends BaseDataProvider
         $fields['phoneNumberMobile'] = $this->formData['mobile_phone'];
         $fields['departmentName'] = $this->formData['department'];
         $fields['profession'] = $this->formData['profession'];
-        $result = $api->setAddress($userID, $fields);
+        try {
+            $result = $api->setAddress($userID, $fields);
+        } catch (KerioApiException $error) {
+            logModuleCall(
+                'kerioEmail',
+                __FUNCTION__,
+                $error,
+                'Debug Error',
+                $error->getMessage()
+            );
+            return ['error' => $error->getMessage()];
+        }
 
         return (new HtmlDataJsonResponse())->setMessageAndTranslate('emailAccountHasBeenAdded')->setStatusSuccess();