DeleteEmailAliasDataProvider.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <?php
  2. namespace ModulesGarden\Servers\KerioEmail\App\UI\Client\EmailAlias\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\Models\AccountAlias;
  6. use ModulesGarden\Servers\KerioEmail\Core\Models\Whmcs\Hosting;
  7. use ModulesGarden\Servers\KerioEmail\Core\UI\ResponseTemplates\HtmlDataJsonResponse;
  8. use ModulesGarden\Servers\KerioEmail\Core\UI\Widget\Forms\DataProviders\BaseDataProvider;
  9. /**
  10. *
  11. * Created by PhpStorm.
  12. * User: Tomasz Bielecki ( tomasz.bi@modulesgarden.com )
  13. * Date: 18.09.19
  14. * Time: 12:59
  15. * Class DeleteEmailAliasDataProvider
  16. */
  17. class DeleteEmailAliasDataProvider extends BaseDataProvider
  18. {
  19. public function read()
  20. {
  21. $params = json_decode(base64_decode($this->actionElementId), true);
  22. $this->data['id'] = $params['accId'];
  23. $this->data['alias'] = $params['alias'];
  24. }
  25. public function update()
  26. {
  27. // TODO: Implement update() method.
  28. }
  29. public function delete()
  30. {
  31. /**
  32. * hosting id
  33. */
  34. $hid = $this->request->get('id');
  35. /**
  36. * product manager allow to check product settings
  37. */
  38. $productManager = new ProductManager();
  39. $productManager->loadByHostingId($hid);
  40. /**
  41. *
  42. * get soap create alias service
  43. * set service configuration
  44. */
  45. $service =(new KerioManager())
  46. ->getApiByHosting($hid)
  47. ->soap
  48. ->service()
  49. ->deleteAccountAlias()
  50. ->setFormData($this->formData);
  51. /**
  52. *
  53. * run service
  54. */
  55. $result = $service->run();
  56. /**
  57. *
  58. * return success or error response
  59. */
  60. if(!$result)
  61. {
  62. return (new HtmlDataJsonResponse())->setMessageAndTranslate($service->getError())->setStatusError();
  63. }
  64. return (new HtmlDataJsonResponse())->setMessageAndTranslate('emailAliasHasBeenDeleted')->setStatusSuccess();
  65. }
  66. public function massDelete()
  67. {
  68. /**
  69. * hosting id
  70. */
  71. $hid = $this->request->get('id');
  72. /**
  73. * product manager allow to check product settings
  74. */
  75. $productManager = new ProductManager();
  76. $productManager->loadByHostingId($hid);
  77. /**
  78. *
  79. * get soap create alias service
  80. * set service configuration
  81. */
  82. $service = (new KerioManager())
  83. ->getApiByHosting($hid)
  84. ->soap
  85. ->service()
  86. ->deleteAccountAlias();
  87. foreach ($this->request->get('massActions') as $endodedData)
  88. {
  89. $data = json_decode(base64_decode($endodedData), true);
  90. $data['id'] = $data['accId'];
  91. $service->setFormData($data);
  92. $result = $service->run();
  93. }
  94. return (new HtmlDataJsonResponse())->setMessageAndTranslate('massEmailAliasHasBeenDeleted')->setStatusSuccess();
  95. }
  96. }