SourceItemsDelete.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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\Inventory\Model\SourceItem\Command;
  8. use Magento\Framework\Exception\CouldNotDeleteException;
  9. use Magento\Framework\Exception\InputException;
  10. use Magento\Inventory\Model\ResourceModel\SourceItem\DeleteMultiple;
  11. use Magento\InventoryApi\Api\SourceItemsDeleteInterface;
  12. use Psr\Log\LoggerInterface;
  13. /**
  14. * @inheritdoc
  15. */
  16. class SourceItemsDelete implements SourceItemsDeleteInterface
  17. {
  18. /**
  19. * @var DeleteMultiple
  20. */
  21. private $deleteMultiple;
  22. /**
  23. * @var LoggerInterface
  24. */
  25. private $logger;
  26. /**
  27. * @param DeleteMultiple $deleteMultiple
  28. * @param LoggerInterface $logger
  29. */
  30. public function __construct(
  31. DeleteMultiple $deleteMultiple,
  32. LoggerInterface $logger
  33. ) {
  34. $this->deleteMultiple = $deleteMultiple;
  35. $this->logger = $logger;
  36. }
  37. /**
  38. * @inheritdoc
  39. */
  40. public function execute(array $sourceItems): void
  41. {
  42. if (empty($sourceItems)) {
  43. throw new InputException(__('Input data is empty'));
  44. }
  45. try {
  46. $this->deleteMultiple->execute($sourceItems);
  47. } catch (\Exception $e) {
  48. $this->logger->error($e->getMessage());
  49. throw new CouldNotDeleteException(__('Could not delete Source Items'), $e);
  50. }
  51. }
  52. }