* @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * @link https://www.temando.com/ */ class Delete extends Action { const ADMIN_RESOURCE = 'Temando_Shipping::locations'; /** * @var LocationRepositoryInterface */ private $locationRepository; /** * Temando Location Delete Action constructor. * * @param Context $context * @param LocationRepositoryInterface $locationRepository */ public function __construct(Context $context, LocationRepositoryInterface $locationRepository) { $this->locationRepository = $locationRepository; parent::__construct($context); } /** * Execute action. * * @return \Magento\Framework\Controller\Result\Redirect */ public function execute() { /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultRedirectFactory->create(); $resultRedirect->setPath('*/*/index'); $locationId = $this->getRequest()->getParam('location_id', false); if (!$locationId) { $this->messageManager->addErrorMessage(__('Location ID missing.')); return $resultRedirect; } try { $this->locationRepository->delete($locationId); $this->messageManager->addSuccessMessage(__('Location was deleted successfully.')); } catch (CouldNotDeleteException $e) { $message = __('An error occurred while deleting the location: %1', $e->getMessage()); $this->messageManager->addExceptionMessage($e, $message); return $resultRedirect; } return $resultRedirect; } }