Delete.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Search\Controller\Adminhtml\Synonyms;
  7. /**
  8. * Delete Controller
  9. */
  10. class Delete extends \Magento\Backend\App\Action
  11. {
  12. /**
  13. * Authorization level of a basic admin session
  14. *
  15. * @see _isAllowed()
  16. */
  17. const ADMIN_RESOURCE = 'Magento_Search::synonyms';
  18. /**
  19. * @var \Psr\Log\LoggerInterface $logger
  20. */
  21. private $logger;
  22. /**
  23. * @var \Magento\Search\Api\SynonymGroupRepositoryInterface $synGroupRepository
  24. */
  25. private $synGroupRepository;
  26. /**
  27. * Constructor
  28. *
  29. * @param \Magento\Backend\App\Action\Context $context
  30. * @param \Magento\Search\Api\SynonymGroupRepositoryInterface $synGroupRepository
  31. * @param \Psr\Log\LoggerInterface $logger
  32. */
  33. public function __construct(
  34. \Magento\Backend\App\Action\Context $context,
  35. \Magento\Search\Api\SynonymGroupRepositoryInterface $synGroupRepository,
  36. \Psr\Log\LoggerInterface $logger
  37. ) {
  38. $this->synGroupRepository = $synGroupRepository;
  39. $this->logger = $logger;
  40. parent::__construct($context);
  41. }
  42. /**
  43. * Delete action
  44. *
  45. * @return \Magento\Backend\Model\View\Result\Redirect
  46. */
  47. public function execute()
  48. {
  49. $id = $this->getRequest()->getParam('group_id');
  50. /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
  51. $resultRedirect = $this->resultRedirectFactory->create();
  52. if ($id) {
  53. try {
  54. /** @var \Magento\Search\Model\SynonymGroup $synGroupModel */
  55. $synGroupModel = $this->synGroupRepository->get($id);
  56. $this->synGroupRepository->delete($synGroupModel);
  57. $this->messageManager->addSuccessMessage(__('The synonym group has been deleted.'));
  58. } catch (\Magento\Framework\Exception\LocalizedException $e) {
  59. $this->messageManager->addErrorMessage($e->getMessage());
  60. $this->logger->error($e);
  61. } catch (\Exception $e) {
  62. $this->messageManager->addErrorMessage(
  63. __('An error was encountered while performing delete operation.')
  64. );
  65. $this->logger->error($e);
  66. }
  67. } else {
  68. $this->messageManager->addErrorMessage(__('We can\'t find a synonym group to delete.'));
  69. }
  70. return $resultRedirect->setPath('*/*/');
  71. }
  72. }