DeleteDomainAliasProvider.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <?php
  2. namespace ModulesGarden\Servers\KerioEmail\App\UI\Client\DomainAlias\Providers;
  3. use ModulesGarden\Servers\KerioEmail\App\Helpers\KerioManager;
  4. use ModulesGarden\Servers\KerioEmail\App\Libs\Product\ProductManager;
  5. use ModulesGarden\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Services\Delete\DeleteDomainAlias;
  6. use ModulesGarden\Servers\KerioEmail\Core\UI\ResponseTemplates\HtmlDataJsonResponse;
  7. use ModulesGarden\Servers\KerioEmail\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 kerio manager by hosting id
  48. */
  49. $service = (new KerioManager())
  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())->setMessageAndTranslate($service->getError())->setStatusError();
  67. }
  68. return (new HtmlDataJsonResponse())->setMessageAndTranslate('domainAliasHasBeenDeleted')->setStatusSuccess();
  69. }
  70. public function massDelete()
  71. {
  72. /**
  73. * hosting id
  74. */
  75. $hid = $this->request->get('id');
  76. /**
  77. * load product configuration
  78. */
  79. $productManager = new ProductManager();
  80. $productManager->loadByHostingId($hid);
  81. /**
  82. * load kerio manager by hosting id
  83. */
  84. $service = (new KerioManager())
  85. ->getApiByHosting($hid)
  86. ->soap
  87. ->service()
  88. ->deleteDomainAlias();
  89. /**
  90. *
  91. */
  92. foreach($this->request->get('massActions') as $id)
  93. {
  94. $service->setFormData(['id' => $id]);
  95. $result = $service->run();
  96. }
  97. return (new HtmlDataJsonResponse())
  98. ->setMessageAndTranslate('massDomainAliasHasBeenDeleted')
  99. ->setStatusSuccess();
  100. }
  101. }