Bladeren bron

bugfix MetricProvider

andre 2 jaren geleden
bovenliggende
commit
9752ea609b
1 gewijzigde bestanden met toevoegingen van 80 en 147 verwijderingen
  1. 80 147
      app/Libs/Metrics/MyMetricProvider.php

+ 80 - 147
app/Libs/Metrics/MyMetricProvider.php

@@ -2,15 +2,9 @@
 
 namespace ThurData\Servers\KerioEmail\App\Libs\Metrics;
 
-use ThurData\Servers\HetznerVps\App\Libs\HetznerVps\Api;
-use ThurData\Servers\HetznerVps\App\Libs\HetznerVps\Api\Constants;
-use ThurData\Servers\KerioEmail\App\Helpers\KerioManager;
-use ThurData\Servers\KerioEmail\App\Enums\Size;
-use mysql_xdevapi\DocResult;
 use WHMCS\UsageBilling\Contracts\Metrics\MetricInterface;
 use WHMCS\UsageBilling\Contracts\Metrics\ProviderInterface;
 use WHMCS\UsageBilling\Metrics\Metric;
-use WHMCS\UsageBilling\Metrics\Units\WholeNumber;
 use WHMCS\UsageBilling\Metrics\Usage;
 use WHMCS\UsageBilling\Metrics\Units\GigaBytes;
 use ThurData\Servers\KerioEmail\Api\KerioWhmcs;
@@ -173,7 +167,7 @@ class MyMetricProvider implements ProviderInterface
         $api = new KerioWhmcs('whmcsKerioEmail', 'Thurdata', '1.0');
         try {
             $api->login($this->moduleParams['serverhostname'], $this->moduleParams['serverusername'], $this->moduleParams['serverpassword']);
-            $domains = $api->getDomains(['id','name','aliasList']);
+            $domainID = $api->getDomainId($tenant);
         } catch (KerioApiException $error) {
             logModuleCall(
                 'kerioEmail',
@@ -185,98 +179,92 @@ class MyMetricProvider implements ProviderInterface
             return ['error' => $error->getMessage()];
         }
         $usage = [];
-
-        foreach ($domains as $domain)
+        $countOfDomainAliases = count($domain['aliasList']);
+        try
         {
-            $domainName = $domain['name'];
-            $domainID = $domain['id'];
-            $countOfDomainAliases = count($domain['aliasList']);
-            try
-            {
-                $fields = array(
-					'loginName',
-					'fullName',
-					'consumedSize'
-                );
-                $mailboxes = $api->getUsers($fields,$domainID);
-                $countOfMailboxes = count($mailboxes);
-                $totalUsage = 0;
-                if ($countOfMailboxes > 0) {
-                    foreach ($mailboxes as $mailboxe) {
-                        switch($mailboxe['consumedSize']['units']) {
-                            case 'Bytes' :
-                                $usage = $mailboxe['consumedSize']['value']/1024/1024;
-                                break;
-                            case 'KiloBytes' :
-                                $usage = $mailboxe['consumedSize']['value']/1024;
-                                break;
-                            case 'MegaBytes' :
-                                $usage = $mailboxe['consumedSize']['value'];
-                                break;
-                            case 'GigaBytes' :
-                                $usage = $mailboxe['consumedSize']['value']*1024;
-                                break;
-                        }
-                        $totalUsage += $usage;
+            $fields = array(
+                'loginName',
+                'fullName',
+                'consumedSize'
+            );
+            $mailboxes = $api->getUsers($fields,$domainID);
+            $countOfMailboxes = count($mailboxes);
+            $totalUsage = 0;
+            if ($countOfMailboxes > 0) {
+                foreach ($mailboxes as $mailboxe) {
+                    switch($mailboxe['consumedSize']['units']) {
+                        case 'Bytes' :
+                            $usage = $mailboxe['consumedSize']['value']/1024/1024;
+                            break;
+                        case 'KiloBytes' :
+                            $usage = $mailboxe['consumedSize']['value']/1024;
+                            break;
+                        case 'MegaBytes' :
+                            $usage = $mailboxe['consumedSize']['value'];
+                            break;
+                        case 'GigaBytes' :
+                            $usage = $mailboxe['consumedSize']['value']*1024;
+                            break;
                     }
+                    $totalUsage += $usage;
                 }
-               $storage = $totalUsage == 0 ? 0 : round($totalUsage);
-            } catch (KerioApiException $error) {
-                logModuleCall(
-                    'kerioEmail',
-                    __FUNCTION__,
-                    $error,
-                    'Debug Error',
-                    $error->getMessage()
-                );
-                return ['error' => $error->getMessage()];
-            }
-            try
-            {
-                $fields = array(
-                    "id",
-                    "name");
-                $mailingLists = $api->getMailingLists($fields,$domainID);
-                $countOfDistributionList = count($mailingLists);
-            } catch (KerioApiException $error) {
-                logModuleCall(
-                    'kerioEmail',
-                    __FUNCTION__,
-                    $error,
-                    'Debug Error',
-                    $error->getMessage()
-                );
-                return ['error' => $error->getMessage()];
-            }
-            try
-            {
-                $fields = array(
-                    "id",
-                    "name");
-                $aliases = $api->getAliases($fields,$domainID);
-                $countOfEmailAliases = count($aliases);
-            } catch (KerioApiException $error) {
-                logModuleCall(
-                    'kerioEmail',
-                    __FUNCTION__,
-                    $error,
-                    'Debug Error',
-                    $error->getMessage()
-                );
-                return ['error' => $error->getMessage()];
             }
+            $storage = $totalUsage == 0 ? 0 : round($totalUsage);
+        } catch (KerioApiException $error) {
+            logModuleCall(
+                'kerioEmail',
+                __FUNCTION__,
+                $error,
+                'Debug Error',
+                $error->getMessage()
+            );
+            return ['error' => $error->getMessage()];
+        }
+        try
+        {
+            $fields = array(
+                "id",
+                "name");
+            $mailingLists = $api->getMailingLists($fields,$domainID);
+            $countOfDistributionList = count($mailingLists);
+        } catch (KerioApiException $error) {
+            logModuleCall(
+                'kerioEmail',
+                __FUNCTION__,
+                $error,
+                'Debug Error',
+                $error->getMessage()
+            );
+            return ['error' => $error->getMessage()];
+        }
+        try
+        {
+            $fields = array(
+                "id",
+                "name");
+            $aliases = $api->getAliases($fields,$domainID);
+            $countOfEmailAliases = count($aliases);
+        } catch (KerioApiException $error) {
+            logModuleCall(
+                'kerioEmail',
+                __FUNCTION__,
+                $error,
+                'Debug Error',
+                $error->getMessage()
+            );
+            return ['error' => $error->getMessage()];
+        }
 
-            $domainData = [
-                'mailboxes' => $countOfMailboxes,
-                'distributionLists' => $countOfDistributionList,
-                'aliases' => $countOfEmailAliases,
-                'domainAliases' => $countOfDomainAliases,
-                'storage' => $storage,
-            ];
+        $domainData = [
+            'mailboxes' => $countOfMailboxes,
+            'distributionLists' => $countOfDistributionList,
+            'aliases' => $countOfEmailAliases,
+            'domainAliases' => $countOfDomainAliases,
+            'storage' => $storage,
+        ];
 
-            $usage[$domainName] = $this->wrapUserData($domainData);
+        $usage = $this->wrapUserData($domainData);
 
-        }
         $api->logout();
         return $usage;
     }
@@ -299,59 +287,4 @@ class MyMetricProvider implements ProviderInterface
         return $wrapped;
     }
 
-    private function getAccounts($tenant)
-    {
-        $accounts =(new KerioManager())
-            ->getApiByServer($this->moduleParams['serverid'])
-            ->soap
-            ->repository()
-            ->accounts()
-            ->getByDomainName($tenant);
-
-        return $accounts;
-    }
-
-    private function getDomainAliases($tenant)
-    {
-        $domainAliases =(new KerioManager())
-            ->getApiByServer($this->moduleParams['serverid'])
-            ->soap
-            ->repository()
-            ->domains
-            ->getAliases($tenant);
-
-        return $domainAliases;
-    }
-
-    private function getDomainUsage($tenant)
-    {
-        $accounts =(new KerioManager())
-            ->getApiByServer($this->moduleParams['serverid'])
-            ->soap
-            ->repository()
-            ->accounts
-            ->getUsages($tenant);
-
-        $totalUsage = 0;
-        foreach ($accounts as $account)
-        {
-            $usage = $account->getUsed();
-            $totalUsage += $usage;
-        }
-
-        return $totalUsage;
-    }
-
-    private function getDistributionList($tenant)
-    {
-        $distributionList =(new KerioManager())
-            ->getApiByServer($this->moduleParams['serverid'])
-            ->soap
-            ->repository()
-            ->lists
-            ->getAllDistributionListsByDomain($tenant);
-
-        return $distributionList;
-    }
-
 }