NotificationAboutFailedSubscription.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Analytics\Model\System\Message;
  7. use Magento\Analytics\Model\SubscriptionStatusProvider;
  8. use Magento\Framework\Notification\MessageInterface;
  9. use Magento\Framework\UrlInterface;
  10. /**
  11. * Represents an analytics notification about failed subscription.
  12. */
  13. class NotificationAboutFailedSubscription implements MessageInterface
  14. {
  15. /**
  16. * @var SubscriptionStatusProvider
  17. */
  18. private $subscriptionStatusProvider;
  19. /**
  20. * @var UrlInterface
  21. */
  22. private $urlBuilder;
  23. /**
  24. * @param SubscriptionStatusProvider $subscriptionStatusProvider
  25. * @param UrlInterface $urlBuilder
  26. */
  27. public function __construct(SubscriptionStatusProvider $subscriptionStatusProvider, UrlInterface $urlBuilder)
  28. {
  29. $this->subscriptionStatusProvider = $subscriptionStatusProvider;
  30. $this->urlBuilder = $urlBuilder;
  31. }
  32. /**
  33. * @inheritdoc
  34. *
  35. * @codeCoverageIgnore
  36. */
  37. public function getIdentity()
  38. {
  39. return hash('sha256', 'ANALYTICS_NOTIFICATION');
  40. }
  41. /**
  42. * {@inheritdoc}
  43. */
  44. public function isDisplayed()
  45. {
  46. return $this->subscriptionStatusProvider->getStatus() === SubscriptionStatusProvider::FAILED;
  47. }
  48. /**
  49. * {@inheritdoc}
  50. */
  51. public function getText()
  52. {
  53. $messageDetails = '';
  54. $messageDetails .= __('Failed to synchronize data to the Magento Business Intelligence service. ');
  55. $messageDetails .= '<a href="' . $this->urlBuilder->getUrl('analytics/subscription/retry') . '">'
  56. . __('Retry Synchronization') . '</a>';
  57. return $messageDetails;
  58. }
  59. /**
  60. * @inheritdoc
  61. *
  62. * @codeCoverageIgnore
  63. */
  64. public function getSeverity()
  65. {
  66. return self::SEVERITY_MAJOR;
  67. }
  68. }