DeleteRessourceDataProvider.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. namespace ThurData\Servers\KerioEmail\App\UI\Client\Ressource\Providers;
  3. use ThurData\Servers\KerioEmail\App\Helpers\KerioManager;
  4. use ThurData\Servers\KerioEmail\App\Libs\Product\ProductManager;
  5. use ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Services\Delete\DeleteRessource;
  6. use ThurData\Servers\KerioEmail\Core\UI\ResponseTemplates\HtmlDataJsonResponse;
  7. use ThurData\Servers\KerioEmail\Core\UI\Widget\Forms\DataProviders\BaseDataProvider;
  8. use ThurData\Servers\KerioEmail\Api\KerioWhmcs;
  9. /**
  10. *
  11. * Created by PhpStorm.
  12. * User: ThurData
  13. * Date: 18.09.19
  14. * Time: 11:28
  15. * Class DeleteRessourceDataProvider
  16. */
  17. class DeleteRessourceDataProvider extends BaseDataProvider
  18. {
  19. public function read()
  20. {
  21. $this->data['id'] = $this->actionElementId;
  22. }
  23. public function update()
  24. {
  25. // TODO: Implement update() method.
  26. }
  27. public function delete()
  28. {
  29. $api = new KerioWhmcs('whmcsKerioEmail', 'Thurdata', '1.0');
  30. try {
  31. $api->login($this->getWhmcsParamByKey('serverhostname'), $this->getWhmcsParamByKey('serverusername'), $this->getWhmcsParamByKey('serverpassword'));
  32. } catch (KerioApiException $error) {
  33. logModuleCall(
  34. 'kerioEmail',
  35. __FUNCTION__,
  36. $error,
  37. 'Debug Error',
  38. $error->getMessage()
  39. );
  40. return ['error' => $error->getMessage()];
  41. }
  42. try {
  43. $api->delResouce($this->formData['id']);
  44. } catch (KerioApiException $error) {
  45. logModuleCall(
  46. 'kerioEmail',
  47. __FUNCTION__,
  48. $error,
  49. 'Debug Error',
  50. $error->getMessage()
  51. );
  52. return ['error' => $error->getMessage()];
  53. }
  54. return (new HtmlDataJsonResponse())->setMessageAndTranslate('ressourceHasBeenDeleted')->setStatusSuccess();
  55. }
  56. public function massDelete()
  57. {
  58. /**
  59. * hosting id
  60. */
  61. $hid = $this->request->get('id');
  62. /**
  63. * product manager allow to check product settings
  64. */
  65. $productManager = new ProductManager();
  66. $productManager->loadByHostingId($hid);
  67. /**
  68. *
  69. * get soap create domain service
  70. */
  71. $service =(new KerioManager())
  72. ->getApiByHosting($hid)
  73. ->soap
  74. ->service()
  75. ->deleteRessource();
  76. /**
  77. *
  78. */
  79. foreach($this->request->get('massActions') as $id)
  80. {
  81. $service->setFormData(['id' => $id]);
  82. $result = $service->run();
  83. }
  84. return (new HtmlDataJsonResponse())->setMessageAndTranslate('massRessourceHasBeenDeleted')->setStatusSuccess();
  85. }
  86. }