Save.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. namespace Dotdigitalgroup\Email\Controller\Adminhtml\Addressbook;
  3. class Save extends \Magento\Backend\App\AbstractAction
  4. {
  5. /**
  6. * Authorization level of a basic admin session
  7. *
  8. * @see _isAllowed()
  9. */
  10. const ADMIN_RESOURCE = 'Dotdigitalgroup_Email::config';
  11. /**
  12. * @var \Magento\Framework\Escaper
  13. */
  14. private $escaper;
  15. /**
  16. * @var \Magento\Framework\Message\ManagerInterface
  17. */
  18. protected $messageManager;
  19. /**
  20. * @var \Dotdigitalgroup\Email\Helper\Data
  21. */
  22. private $helperData;
  23. /**
  24. * Save constructor.
  25. * @param \Dotdigitalgroup\Email\Helper\Data $data
  26. * @param \Magento\Framework\Escaper $escaper
  27. * @param \Magento\Backend\App\Action\Context $context
  28. */
  29. public function __construct(
  30. \Dotdigitalgroup\Email\Helper\Data $data,
  31. \Magento\Framework\Escaper $escaper,
  32. \Magento\Backend\App\Action\Context $context
  33. ) {
  34. $this->helperData = $data;
  35. $this->escaper = $escaper;
  36. $this->messageManager = $context->getMessageManager();
  37. parent::__construct($context);
  38. }
  39. /**
  40. * Execute method.
  41. *
  42. * @return null
  43. */
  44. public function execute()
  45. {
  46. $addressBookName = $this->getRequest()->getParam('name');
  47. $visibility = $this->getRequest()->getParam('visibility');
  48. $website = (int) $this->getRequest()->getParam('website', 0);
  49. if ($this->helperData->isEnabled($website)) {
  50. $client = $this->helperData->getWebsiteApiClient($website);
  51. if (! empty($addressBookName)) {
  52. $response = $client->postAddressBooks($addressBookName, $visibility);
  53. if (isset($response->message)) {
  54. $this->messageManager->addErrorMessage($response->message);
  55. } else {
  56. $this->messageManager->addSuccessMessage('Address book successfully created.');
  57. }
  58. }
  59. }
  60. }
  61. }