123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Analytics\Model;
- use Magento\Analytics\Model\Config\Backend\Baseurl\SubscriptionUpdateHandler;
- use Magento\Analytics\Model\Config\Backend\Enabled\SubscriptionHandler;
- use Magento\Framework\App\Config\ScopeConfigInterface;
- use Magento\Framework\FlagManager;
- /**
- * Provider of subscription status.
- */
- class SubscriptionStatusProvider
- {
- /**
- * Represents an enabled subscription state.
- */
- const ENABLED = "Enabled";
- /**
- * Represents a failed subscription state.
- */
- const FAILED = "Failed";
- /**
- * Represents a pending subscription state.
- */
- const PENDING = "Pending";
- /**
- * Represents a disabled subscription state.
- */
- const DISABLED = "Disabled";
- /**
- * @var ScopeConfigInterface
- */
- private $scopeConfig;
- /**
- * @var AnalyticsToken
- */
- private $analyticsToken;
- /**
- * @var FlagManager
- */
- private $flagManager;
- /**
- * @param ScopeConfigInterface $scopeConfig
- * @param AnalyticsToken $analyticsToken
- * @param FlagManager $flagManager
- */
- public function __construct(
- ScopeConfigInterface $scopeConfig,
- AnalyticsToken $analyticsToken,
- FlagManager $flagManager
- ) {
- $this->scopeConfig = $scopeConfig;
- $this->analyticsToken = $analyticsToken;
- $this->flagManager = $flagManager;
- }
- /**
- * Retrieve subscription status to Magento BI Advanced Reporting.
- *
- * Statuses:
- * Enabled - if subscription is enabled and MA token was received;
- * Pending - if subscription is enabled and MA token was not received;
- * Disabled - if subscription is not enabled.
- * Failed - if subscription is enabled and token was not received after attempts ended.
- *
- * @return string
- */
- public function getStatus()
- {
- $isSubscriptionEnabledInConfig = $this->scopeConfig->getValue('analytics/subscription/enabled');
- if ($isSubscriptionEnabledInConfig) {
- return $this->getStatusForEnabledSubscription();
- }
- return $this->getStatusForDisabledSubscription();
- }
- /**
- * Retrieve status for subscription that enabled in config.
- *
- * @return string
- */
- public function getStatusForEnabledSubscription()
- {
- $status = static::ENABLED;
- if ($this->flagManager->getFlagData(SubscriptionUpdateHandler::PREVIOUS_BASE_URL_FLAG_CODE)) {
- $status = self::PENDING;
- }
- if (!$this->analyticsToken->isTokenExist()) {
- $status = static::PENDING;
- if ($this->flagManager->getFlagData(SubscriptionHandler::ATTEMPTS_REVERSE_COUNTER_FLAG_CODE) === null) {
- $status = static::FAILED;
- }
- }
- return $status;
- }
- /**
- * Retrieve status for subscription that disabled in config.
- *
- * @return string
- */
- public function getStatusForDisabledSubscription()
- {
- return static::DISABLED;
- }
- }
|