Show.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Analytics\Controller\Adminhtml\Reports;
  7. use Magento\Framework\App\Action\HttpGetActionInterface as HttpGetActionInterface;
  8. use Magento\Analytics\Model\Exception\State\SubscriptionUpdateException;
  9. use Magento\Analytics\Model\ReportUrlProvider;
  10. use Magento\Backend\App\Action;
  11. use Magento\Backend\App\Action\Context;
  12. use Magento\Framework\Controller\Result\Redirect;
  13. use Magento\Framework\Controller\ResultFactory;
  14. use Magento\Framework\Exception\LocalizedException;
  15. /**
  16. * Provide redirect to resource with reports.
  17. */
  18. class Show extends Action implements HttpGetActionInterface
  19. {
  20. /**
  21. * @var ReportUrlProvider
  22. */
  23. private $reportUrlProvider;
  24. /**
  25. * @inheritdoc
  26. */
  27. const ADMIN_RESOURCE = 'Magento_Analytics::analytics_settings';
  28. /**
  29. * @param Context $context
  30. * @param ReportUrlProvider $reportUrlProvider
  31. */
  32. public function __construct(
  33. Context $context,
  34. ReportUrlProvider $reportUrlProvider
  35. ) {
  36. $this->reportUrlProvider = $reportUrlProvider;
  37. parent::__construct($context);
  38. }
  39. /**
  40. * Redirect to resource with reports.
  41. *
  42. * @return Redirect $resultRedirect
  43. */
  44. public function execute()
  45. {
  46. /** @var Redirect $resultRedirect */
  47. $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
  48. try {
  49. $resultRedirect->setUrl($this->reportUrlProvider->getUrl());
  50. } catch (SubscriptionUpdateException $e) {
  51. $this->getMessageManager()->addNoticeMessage($e->getMessage());
  52. $resultRedirect->setPath('adminhtml');
  53. } catch (LocalizedException $e) {
  54. $this->getMessageManager()->addExceptionMessage($e, $e->getMessage());
  55. $resultRedirect->setPath('adminhtml');
  56. } catch (\Exception $e) {
  57. $this->getMessageManager()->addExceptionMessage(
  58. $e,
  59. __('Sorry, there has been an error processing your request. Please try again later.')
  60. );
  61. $resultRedirect->setPath('adminhtml');
  62. }
  63. return $resultRedirect;
  64. }
  65. }