Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Get.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
15 use Magento\InventoryLowQuantityNotificationApi\Api\Data\SourceItemConfigurationInterfaceFactory;
17 use Psr\Log\LoggerInterface;
18 
23 {
27  private $getDataResourceModel;
28 
32  private $getDefaultValues;
33 
37  private $sourceItemConfigurationFactory;
38 
42  private $dataObjectHelper;
43 
47  private $logger;
48 
56  public function __construct(
57  GetDataModel $getDataResourceModel,
58  GetDefaultValues $getDefaultValues,
59  SourceItemConfigurationInterfaceFactory $sourceItemConfigurationFactory,
60  DataObjectHelper $dataObjectHelper,
61  LoggerInterface $logger
62  ) {
63  $this->getDataResourceModel = $getDataResourceModel;
64  $this->getDefaultValues = $getDefaultValues;
65  $this->sourceItemConfigurationFactory = $sourceItemConfigurationFactory;
66  $this->dataObjectHelper = $dataObjectHelper;
67  $this->logger = $logger;
68  }
69 
73  public function execute(string $sourceCode, string $sku): SourceItemConfigurationInterface
74  {
75  if (empty($sourceCode) || empty($sku)) {
76  throw new InputException(__('Wrong input data'));
77  }
78 
79  try {
80  return $this->getConfiguration($sourceCode, $sku);
81  } catch (\Exception $e) {
82  $this->logger->error($e->getMessage());
83  throw new LocalizedException(__('Could not load Source Item Configuration.'), $e);
84  }
85  }
86 
92  private function getConfiguration(string $sourceCode, string $sku): SourceItemConfigurationInterface
93  {
94  $sourceItemConfigurationData = $this->getDataResourceModel->execute($sourceCode, $sku);
95 
96  if (null === $sourceItemConfigurationData) {
97  $sourceItemConfigurationData = $this->getDefaultValues->execute($sourceCode, $sku);
98  }
99 
101  $sourceItemConfiguration = $this->sourceItemConfigurationFactory->create();
102  $this->dataObjectHelper->populateWithArray(
103  $sourceItemConfiguration,
104  $sourceItemConfigurationData,
105  SourceItemConfigurationInterface::class
106  );
107  return $sourceItemConfiguration;
108  }
109 }
$sourceItemConfigurationFactory
__()
Definition: __.php:13
$logger
$sourceCode
Definition: inventory.phtml:11
__construct(GetDataModel $getDataResourceModel, GetDefaultValues $getDefaultValues, SourceItemConfigurationInterfaceFactory $sourceItemConfigurationFactory, DataObjectHelper $dataObjectHelper, LoggerInterface $logger)
Definition: Get.php:56