6 declare(strict_types=1);
17 use Psr\Log\LoggerInterface;
27 private $searchCriteriaBuilder;
32 private $sourceRepository;
37 private $getStockSourceLinks;
47 private $sortOrderBuilder;
61 LoggerInterface $logger
65 $this->getStockSourceLinks = $getStockSourceLinks;
67 $this->sortOrderBuilder = $sortOrderBuilder;
73 public function execute(
int $stockId): array
76 $stockSourceLinks = $this->getStockSourceLinks($stockId);
78 foreach ($stockSourceLinks as
$link) {
79 $sources[] = $this->sourceRepository->get(
$link->getSourceCode());
83 }
catch (\Exception $e) {
84 $this->logger->error($e->getMessage());
95 private function getStockSourceLinks(
int $stockId): array
97 $sortOrder = $this->sortOrderBuilder
99 ->setAscendingDirection()
103 ->addSortOrder($sortOrder)
107 return $searchResult->getItems();
__construct(SearchCriteriaBuilder $searchCriteriaBuilder, SourceRepositoryInterface $sourceRepository, GetStockSourceLinksInterface $getStockSourceLinks, SortOrderBuilder $sortOrderBuilder, LoggerInterface $logger)