Update.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Analytics\Cron;
  7. use Magento\Analytics\Model\AnalyticsToken;
  8. use Magento\Analytics\Model\Config\Backend\Baseurl\SubscriptionUpdateHandler;
  9. use Magento\Analytics\Model\Connector;
  10. use Magento\Framework\FlagManager;
  11. use Magento\Framework\App\Config\ReinitableConfigInterface;
  12. use Magento\Framework\App\Config\Storage\WriterInterface;
  13. /**
  14. * Executes by cron schedule in case base url was changed
  15. */
  16. class Update
  17. {
  18. /**
  19. * @var Connector
  20. */
  21. private $connector;
  22. /**
  23. * @var WriterInterface
  24. */
  25. private $configWriter;
  26. /**
  27. * @var ReinitableConfigInterface
  28. */
  29. private $reinitableConfig;
  30. /**
  31. * @var FlagManager
  32. */
  33. private $flagManager;
  34. /**
  35. * @var AnalyticsToken
  36. */
  37. private $analyticsToken;
  38. /**
  39. * @param Connector $connector
  40. * @param WriterInterface $configWriter
  41. * @param ReinitableConfigInterface $reinitableConfig
  42. * @param FlagManager $flagManager
  43. * @param AnalyticsToken $analyticsToken
  44. */
  45. public function __construct(
  46. Connector $connector,
  47. WriterInterface $configWriter,
  48. ReinitableConfigInterface $reinitableConfig,
  49. FlagManager $flagManager,
  50. AnalyticsToken $analyticsToken
  51. ) {
  52. $this->connector = $connector;
  53. $this->configWriter = $configWriter;
  54. $this->reinitableConfig = $reinitableConfig;
  55. $this->flagManager = $flagManager;
  56. $this->analyticsToken = $analyticsToken;
  57. }
  58. /**
  59. * Execute scheduled update operation
  60. *
  61. * @return bool
  62. */
  63. public function execute()
  64. {
  65. $result = false;
  66. $attemptsCount = $this->flagManager
  67. ->getFlagData(SubscriptionUpdateHandler::SUBSCRIPTION_UPDATE_REVERSE_COUNTER_FLAG_CODE);
  68. if ($attemptsCount) {
  69. $attemptsCount -= 1;
  70. $result = $this->connector->execute('update');
  71. }
  72. if ($result || ($attemptsCount <= 0) || (!$this->analyticsToken->isTokenExist())) {
  73. $this->flagManager
  74. ->deleteFlag(SubscriptionUpdateHandler::SUBSCRIPTION_UPDATE_REVERSE_COUNTER_FLAG_CODE);
  75. $this->flagManager->deleteFlag(SubscriptionUpdateHandler::PREVIOUS_BASE_URL_FLAG_CODE);
  76. $this->configWriter->delete(SubscriptionUpdateHandler::UPDATE_CRON_STRING_PATH);
  77. $this->reinitableConfig->reinit();
  78. }
  79. return $result;
  80. }
  81. }