Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
SubscriptionUpdateHandler.php
Go to the documentation of this file.
1 <?php
8 
13 
18 {
22  const SUBSCRIPTION_UPDATE_REVERSE_COUNTER_FLAG_CODE = 'analytics_link_subscription_update_reverse_counter';
23 
27  const UPDATE_CRON_STRING_PATH = "crontab/default/jobs/analytics_update/schedule/cron_expr";
28 
32  const PREVIOUS_BASE_URL_FLAG_CODE = 'analytics_previous_base_url';
33 
39  private $attemptsInitValue = 48;
40 
44  private $configWriter;
45 
51  private $cronExpression = '0 * * * *';
52 
56  private $flagManager;
57 
61  private $reinitableConfig;
62 
66  private $analyticsToken;
67 
74  public function __construct(
75  AnalyticsToken $analyticsToken,
76  FlagManager $flagManager,
77  ReinitableConfigInterface $reinitableConfig,
78  WriterInterface $configWriter
79  ) {
80  $this->analyticsToken = $analyticsToken;
81  $this->flagManager = $flagManager;
82  $this->reinitableConfig = $reinitableConfig;
83  $this->configWriter = $configWriter;
84  }
85 
92  public function processUrlUpdate(string $url)
93  {
94  if ($this->analyticsToken->isTokenExist()) {
95  if (!$this->flagManager->getFlagData(self::PREVIOUS_BASE_URL_FLAG_CODE)) {
96  $this->flagManager->saveFlag(self::PREVIOUS_BASE_URL_FLAG_CODE, $url);
97  }
98 
99  $this->flagManager
100  ->saveFlag(self::SUBSCRIPTION_UPDATE_REVERSE_COUNTER_FLAG_CODE, $this->attemptsInitValue);
101  $this->configWriter->save(self::UPDATE_CRON_STRING_PATH, $this->cronExpression);
102  $this->reinitableConfig->reinit();
103  }
104 
105  return true;
106  }
107 }
__construct(AnalyticsToken $analyticsToken, FlagManager $flagManager, ReinitableConfigInterface $reinitableConfig, WriterInterface $configWriter)