DeleteDomainAliasProvider.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. <?php
  2. namespace ModulesGarden\Servers\ZimbraEmail\App\UI\Client\DomainAlias\Providers;
  3. use ModulesGarden\Servers\ZimbraEmail\App\Helpers\ZimbraManager;
  4. use ModulesGarden\Servers\ZimbraEmail\App\Libs\Product\ProductManager;
  5. use ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Services\Delete\DeleteDomainAlias;
  6. use ModulesGarden\Servers\ZimbraEmail\Core\UI\ResponseTemplates\HtmlDataJsonResponse;
  7. use ModulesGarden\Servers\ZimbraEmail\Core\UI\Widget\Forms\DataProviders\BaseDataProvider;
  8. /**
  9. *
  10. * Created by PhpStorm.
  11. * User: Tomasz Bielecki ( tomasz.bi@modulesgarden.com )
  12. * Date: 02.10.19
  13. * Time: 14:41
  14. * Class DeleteDomainAliasProvider
  15. */
  16. class DeleteDomainAliasProvider extends BaseDataProvider
  17. {
  18. /**
  19. *
  20. */
  21. public function read()
  22. {
  23. $this->data['id'] = $this->actionElementId;
  24. }
  25. /**
  26. *
  27. */
  28. public function update()
  29. {
  30. // TODO: Implement update() method.
  31. }
  32. /**
  33. * @return HtmlDataJsonResponse|void
  34. */
  35. public function delete()
  36. {
  37. /**
  38. * hosting id
  39. */
  40. $hid = $this->request->get('id');
  41. /**
  42. * load product configuration
  43. */
  44. $productManager = new ProductManager();
  45. $productManager->loadByHostingId($hid);
  46. /**
  47. * load zimbra manager by hosting id
  48. */
  49. $service = (new ZimbraManager())
  50. ->getApiByHosting($hid)
  51. ->soap
  52. ->service()
  53. ->deleteDomainAlias()
  54. ->setFormData($this->formData)
  55. ;
  56. /**
  57. * run service
  58. */
  59. $result = $service->run();
  60. /**
  61. *
  62. * return success or error response
  63. */
  64. if(!$result)
  65. {
  66. return (new HtmlDataJsonResponse())
  67. ->setMessage($service->getError())
  68. ->setStatusError();
  69. }
  70. return (new HtmlDataJsonResponse())
  71. ->setMessageAndTranslate('domainAliasHasBeenDeleted')
  72. ->setStatusSuccess();
  73. }
  74. public function massDelete()
  75. {
  76. /**
  77. * hosting id
  78. */
  79. $hid = $this->request->get('id');
  80. /**
  81. * load product configuration
  82. */
  83. $productManager = new ProductManager();
  84. $productManager->loadByHostingId($hid);
  85. /**
  86. * load zimbra manager by hosting id
  87. */
  88. $service = (new ZimbraManager())
  89. ->getApiByHosting($hid)
  90. ->soap
  91. ->service()
  92. ->deleteDomainAlias();
  93. /**
  94. *
  95. */
  96. foreach($this->request->get('massActions') as $id)
  97. {
  98. $service->setFormData(['id' => $id]);
  99. $result = $service->run();
  100. }
  101. return (new HtmlDataJsonResponse())
  102. ->setMessageAndTranslate('massDomainAliasHasBeenDeleted')
  103. ->setStatusSuccess();
  104. }
  105. }