ListAccounts.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. namespace ModulesGarden\Servers\KerioEmail\App\Http\Actions;
  3. use ModulesGarden\Servers\KerioEmail\App\Helpers\KerioManager;
  4. use ModulesGarden\Servers\KerioEmail\App\Libs\Product\ProductManager;
  5. use ModulesGarden\Servers\KerioEmail\App\Traits\ExtensionsCheckerTrait;
  6. use ModulesGarden\Servers\KerioEmail\Core\App\Controllers\Instances\AddonController;
  7. class ListAccounts extends AddonController
  8. {
  9. use ExtensionsCheckerTrait;
  10. public function execute($params = null)
  11. {
  12. try
  13. {
  14. $servers =(new KerioManager())
  15. ->getApiByServer($params['serverid'])
  16. ->soap
  17. ->repository()
  18. ->domains()
  19. ->getAll();
  20. $accounts = [];
  21. foreach ($servers as $server)
  22. {
  23. $created = explode('.', $server->getAttr('kerioCreateTimestamp'));
  24. $created = date( 'Y-m-d H:i:s', strtotime($created[0]));
  25. $accounts[] = [
  26. 'domain' => $server->getName(),
  27. 'status' => 'Active',
  28. 'created' => $created,
  29. 'primaryip' => $params['serverip'],
  30. 'uniqueIdentifier' => $server->getName(),
  31. 'product' => '',
  32. ];
  33. }
  34. return [
  35. 'success' => true,
  36. 'accounts' => $accounts
  37. ];
  38. }
  39. catch (\Exception $ex)
  40. {
  41. return ['error' => $ex->getMessage()];
  42. }
  43. }
  44. }