TestConnection.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. namespace ThurData\Servers\KerioEmail\App\Http\Actions;
  3. use ThurData\Servers\KerioEmail\App\Helpers\KerioManager;
  4. use ThurData\Servers\KerioEmail\App\Libs\Kerio\Api;
  5. use ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Client;
  6. use ThurData\Servers\KerioEmail\App\Traits\ExtensionsCheckerTrait;
  7. use ThurData\Servers\KerioEmail\Core\App\Controllers\Instances\AddonController;
  8. /**
  9. *
  10. * Created by PhpStorm.
  11. * User: ThurData
  12. * Date: 27.08.19
  13. * Time: 14:54
  14. * Class TestConnection
  15. */
  16. class TestConnection extends AddonController
  17. {
  18. use ExtensionsCheckerTrait;
  19. /**
  20. *
  21. *
  22. * @param null $params
  23. * @return array
  24. */
  25. public function execute($params = null)
  26. {
  27. try{
  28. /**
  29. *
  30. */
  31. $this->checkExtensionOrThrowError();
  32. /**
  33. * kerio API manager
  34. */
  35. $manager = (new KerioManager());
  36. /**
  37. * set API params
  38. */
  39. if($params['serverusername'] )
  40. {
  41. /**
  42. *
  43. * override secure param
  44. */
  45. $params['serversecure'] = $params['serversecure'] ? 'on' : 'off';
  46. $api = $manager->getApi()->setParams($params);
  47. }else{
  48. $api = $manager->getApiByServer($params['serverid']);
  49. }
  50. /**
  51. * API Connection
  52. */
  53. $connection = $api->soap->getConnection();
  54. logModuleCall(
  55. 'kerioEmail',
  56. __FUNCTION__,
  57. $connection,
  58. 'Debug SOAP Response',
  59. $api
  60. );
  61. /**
  62. * check if connected and return true
  63. */
  64. if($connection->isConnected())
  65. {
  66. return ['success' => true];
  67. }
  68. /**
  69. *
  70. * return connection error
  71. */
  72. return ['error' => $connection->getConnectionError()];
  73. }
  74. catch (\Exception $ex)
  75. {
  76. /**
  77. * return some crit error
  78. */
  79. return ['error' => $ex->getMessage()];
  80. }
  81. }
  82. }