| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- <?php
- namespace ThurData\Servers\KerioEmail\App\Http\Actions;
- use ThurData\Servers\KerioEmail\App\Helpers\KerioManager;
- use ThurData\Servers\KerioEmail\Core\App\Controllers\Instances\AddonController;
- use ThurData\Servers\KerioEmail\Core\Models\Whmcs;
- use ThurData\Servers\KerioEmail\Api\KerioWhmcs;
- class UsageUpdate extends AddonController
- {
- public function execute($params = null)
- {
- $api = new KerioWhmcs('whmcsKerioEmail', 'Thurdata', '1.0');
-
- try {
- $api->login($params['serverhostname'], $params['serverusername'], $params['serverpassword']);
- $domains = $api->getDomains(['id','name']);
- } catch (KerioApiException $error) {
- logModuleCall(
- 'kerioEmail',
- __FUNCTION__,
- $error,
- 'Debug Error',
- $error->getMessage()
- );
- return ['error' => $error->getMessage()];
- }
- foreach ($domains as $domain)
- {
- try
- {
- $domainName = $domain['name'];
- $domainID = $domain['id'];
- $fields = array(
- 'loginName',
- 'fullName',
- 'consumedSize'
- );
- $users = $api->getUsers($fields,$domainID);
- $mailboxes = $users['totalItems'];
- $totalUsage = 0;
- if ($users['totalItems'] > 0) {
- foreach ($users['list'] as $user) {
- $usage = $user['consumedSize']['value'];
- $totalUsage += $usage;
- }
- }
- $storage = $totalUsage == 0 ? 0 : round($totalUsage/1024/1024);
- $serverId =$params['serverid'];
- Whmcs\Hosting::where('server', $serverId)->where('domain', $domainName)->update(['bwusage' => $mailboxes]);
- Whmcs\Hosting::where('server', $serverId)->where('domain', $domainName)->update(['diskusage' => $storage]);
- logModuleCall(
- 'kerioEmail',
- __FUNCTION__,
- $mailboxes,
- 'Debug UsageUpdate',
- $storage
- );
- usleep(5000);
- }
- catch (\Exception $ex)
- {
- }
- }
- }
- }
|