RemoveIndexData.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. namespace Magento\InventoryIndexer\Test\Integration\Indexer;
  8. use Magento\Framework\App\ResourceConnection;
  9. use Magento\InventoryMultiDimensionalIndexerApi\Model\Alias;
  10. use Magento\InventoryMultiDimensionalIndexerApi\Model\IndexNameBuilder;
  11. use Magento\InventoryIndexer\Indexer\IndexStructure;
  12. use Magento\InventoryIndexer\Indexer\InventoryIndexer;
  13. class RemoveIndexData
  14. {
  15. /**
  16. * @var IndexNameBuilder
  17. */
  18. private $indexNameBuilder;
  19. /**
  20. * @var IndexStructure
  21. */
  22. private $indexStructure;
  23. /**
  24. * @param IndexNameBuilder $indexNameBuilder
  25. * @param IndexStructure $indexStructure
  26. */
  27. public function __construct(
  28. IndexNameBuilder $indexNameBuilder,
  29. IndexStructure $indexStructure
  30. ) {
  31. $this->indexNameBuilder = $indexNameBuilder;
  32. $this->indexStructure = $indexStructure;
  33. }
  34. /**
  35. * @param array $stockIds
  36. * @return void
  37. */
  38. public function execute(array $stockIds)
  39. {
  40. foreach ($stockIds as $stockId) {
  41. $indexName = $this->indexNameBuilder
  42. ->setIndexId(InventoryIndexer::INDEXER_ID)
  43. ->addDimension('stock_', (string)$stockId)
  44. ->setAlias(Alias::ALIAS_MAIN)
  45. ->build();
  46. $this->indexStructure->delete($indexName, ResourceConnection::DEFAULT_CONNECTION);
  47. }
  48. }
  49. }