UsageUpdate.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. namespace ThurData\Servers\KerioEmail\App\Http\Actions;
  3. use ThurData\Servers\KerioEmail\App\Helpers\KerioManager;
  4. use ThurData\Servers\KerioEmail\Core\App\Controllers\Instances\AddonController;
  5. use ThurData\Servers\KerioEmail\Core\Models\Whmcs;
  6. use ThurData\Servers\KerioEmail\Api\KerioWhmcs;
  7. class UsageUpdate extends AddonController
  8. {
  9. public function execute($params = null)
  10. {
  11. $api = new KerioWhmcs('whmcsKerioEmail', 'Thurdata', '1.0');
  12. try {
  13. $api->login($params['serverhostname'], $params['serverusername'], $params['serverpassword']);
  14. $domains = $api->getDomains(['id','name']);
  15. } catch (KerioApiException $error) {
  16. logModuleCall(
  17. 'kerioEmail',
  18. __FUNCTION__,
  19. $error,
  20. 'Debug Error',
  21. $error->getMessage()
  22. );
  23. return ['error' => $error->getMessage()];
  24. }
  25. foreach ($domains as $domain)
  26. {
  27. try
  28. {
  29. $domainName = $domain['name'];
  30. $domainID = $domain['id'];
  31. $fields = array(
  32. 'loginName',
  33. 'fullName',
  34. 'consumedSize'
  35. );
  36. $users = $api->getUsers($fields,$domainID);
  37. $mailboxes = $users['totalItems'];
  38. $totalUsage = 0;
  39. if ($users['totalItems'] > 0) {
  40. foreach ($users['list'] as $user) {
  41. $usage = $user['consumedSize']['value'];
  42. $totalUsage += $usage;
  43. }
  44. }
  45. $storage = $totalUsage == 0 ? 0 : round($totalUsage/1024/1024);
  46. $serverId =$params['serverid'];
  47. Whmcs\Hosting::where('server', $serverId)->where('domain', $domainName)->update(['bwusage' => $mailboxes]);
  48. Whmcs\Hosting::where('server', $serverId)->where('domain', $domainName)->update(['diskusage' => $storage]);
  49. logModuleCall(
  50. 'kerioEmail',
  51. __FUNCTION__,
  52. $domainName,
  53. 'Debug UsageUpdate',
  54. $users
  55. );
  56. usleep(5000);
  57. }
  58. catch (\Exception $ex)
  59. {
  60. }
  61. }
  62. }
  63. }