checkExtensionOrThrowError(); //update domain if($params['customfields']['maildomain']){ $params['domain'] = $params['customfields']['maildomain']; $this->hosting()->domain = $params['domain']; $this->hosting()->save(); } /** * run kerio service */ $result = $this->kerioRunService($params); return $result; }catch (\Exception $ex) { /** * return some crit error */ return $ex->getMessage(); } } /** * @param null $params * @return mixed|string */ protected function kerioRunService($params = null) { $productManager = new ProductManager(); $productManager->loadById($params['pid']); $acc_limit = $productManager->get('acc_limit'); $accounts = $productManager->get('acc_base') + $params['configoptions']['acc_add'] + $params['configoptions']['acc_new']; if ($acc_limit >= 0) { if ($accounts > $acc_limit) { $accounts = $acc_limit; } } $domainMaxSize = $productManager->get('domainMaxSize'); $domainSize = $productManager->get('domainBaseSize') + $params['configoptions']['domainAddSize'] + $params['configoptions']['domainNewSize']; if ($domainMaxSize >= 0) { if ($domainSize > $domainMaxSize) { $domainSize = $domainMaxSize; } } $api = new KerioWhmcs('whmcsKerioEmail', 'Thurdata', '1.0'); try { $api->login($params['serverhostname'], $params['serverusername'], $params['serverpassword']); $result = $api->createDomain($params['domain']); $domainID = $result['result'][0]['id']; $api->logout(); logModuleCall( 'kerioEmail', __FUNCTION__, $accounts, 'Debug ID', $domainSize ); } catch (KerioApiException $error) { logModuleCall( 'kerioEmail', __FUNCTION__, $error, 'Debug Error', $error->getMessage() ); return ['error' => $error->getMessage()]; } /** * return success response */ return Response::SUCCESS; } }