CreateAccount.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. namespace ModulesGarden\Servers\ZimbraEmail\App\Http\Actions;
  3. use ModulesGarden\Servers\ZimbraEmail\App\Enums\Response;
  4. use ModulesGarden\Servers\ZimbraEmail\App\Helpers\ZimbraManager;
  5. use ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Domain;
  6. use ModulesGarden\Servers\ZimbraEmail\App\Traits\ExtensionsCheckerTrait;
  7. use ModulesGarden\Servers\ZimbraEmail\Core\App\Controllers\Instances\AddonController;
  8. /**
  9. *
  10. * Created by PhpStorm.
  11. * User: Tomasz Bielecki ( tomasz.bi@modulesgarden.com )
  12. * Date: 09.09.19
  13. * Time: 15:14
  14. * Class CreateAccount
  15. */
  16. class CreateAccount extends AddonController
  17. {
  18. use ExtensionsCheckerTrait;
  19. /**
  20. * create domain in zimbra
  21. *
  22. * @param null $params
  23. * @return string
  24. */
  25. public function execute($params = null)
  26. {
  27. try{
  28. /**
  29. * check if extensions are installed
  30. */
  31. $this->checkExtensionOrThrowError();
  32. /**
  33. * run zimbra service
  34. */
  35. $result = $this->zimbraRunService($params);
  36. return $result;
  37. }catch (\Exception $ex)
  38. {
  39. /**
  40. * return some crit error
  41. */
  42. return $ex->getMessage();
  43. }
  44. }
  45. /**
  46. * @param null $params
  47. * @return mixed|string
  48. */
  49. protected function zimbraRunService($params = null)
  50. {
  51. /**
  52. *
  53. * get soap create domain service
  54. */
  55. $service =(new ZimbraManager())
  56. ->getApiByServer($params['serverid'])
  57. ->soap
  58. ->service()
  59. ->createDomain();
  60. /**
  61. *
  62. * set params
  63. * run service (Create domain in Zimbra API)
  64. */
  65. $result = $service
  66. ->setFormData($params)
  67. ->run();
  68. /**
  69. * check service result & return error
  70. */
  71. if(!$result)
  72. {
  73. return $service->getError();
  74. }
  75. /**
  76. * return success response
  77. */
  78. return Response::SUCCESS;
  79. }
  80. }