123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- declare(strict_types=1);
- namespace Magento\AsynchronousOperations\Model;
- use Magento\Framework\EntityManager\EntityManager;
- use Magento\Framework\Api\SearchCriteria\CollectionProcessorInterface;
- use Magento\AsynchronousOperations\Api\Data\OperationSearchResultsInterfaceFactory as SearchResultFactory;
- use Magento\AsynchronousOperations\Api\Data\OperationExtensionInterfaceFactory;
- use Magento\AsynchronousOperations\Model\ResourceModel\Operation\CollectionFactory;
- use Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface;
- use Magento\Framework\Exception\InputException;
- use Magento\Framework\Exception\NoSuchEntityException;
- /**
- * Repository class for @see \Magento\AsynchronousOperations\Api\OperationRepositoryInterface
- */
- class OperationRepository implements \Magento\AsynchronousOperations\Api\OperationRepositoryInterface
- {
- /**
- * @var EntityManager
- */
- private $entityManager;
- /**
- * @var CollectionFactory
- */
- private $collectionFactory;
- /**
- * @var SearchResultFactory
- */
- private $searchResultFactory;
- /**
- * @var JoinProcessorInterface
- */
- private $joinProcessor;
- /**
- * @var \Magento\AsynchronousOperations\Api\Data\OperationExtensionInterfaceFactory
- */
- private $operationExtensionFactory;
- /**
- * @var CollectionProcessorInterface
- */
- private $collectionProcessor;
- /**
- * @var \Psr\Log\LoggerInterface
- */
- private $logger;
- /**
- * OperationRepository constructor.
- *
- * @param EntityManager $entityManager
- * @param CollectionFactory $collectionFactory
- * @param SearchResultFactory $searchResultFactory
- * @param JoinProcessorInterface $joinProcessor
- * @param OperationExtensionInterfaceFactory $operationExtension
- * @param CollectionProcessorInterface $collectionProcessor
- * @param \Psr\Log\LoggerInterface $logger
- */
- public function __construct(
- EntityManager $entityManager,
- CollectionFactory $collectionFactory,
- SearchResultFactory $searchResultFactory,
- JoinProcessorInterface $joinProcessor,
- OperationExtensionInterfaceFactory $operationExtension,
- CollectionProcessorInterface $collectionProcessor,
- \Psr\Log\LoggerInterface $logger
- ) {
- $this->entityManager = $entityManager;
- $this->collectionFactory = $collectionFactory;
- $this->searchResultFactory = $searchResultFactory;
- $this->joinProcessor = $joinProcessor;
- $this->operationExtensionFactory = $operationExtension;
- $this->collectionProcessor = $collectionProcessor;
- $this->logger = $logger;
- $this->collectionProcessor = $collectionProcessor;
- }
- /**
- * @inheritDoc
- */
- public function getList(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria)
- {
- /** @var \Magento\AsynchronousOperations\Api\Data\OperationSearchResultsInterface $searchResult */
- $searchResult = $this->searchResultFactory->create();
- /** @var \Magento\AsynchronousOperations\Model\ResourceModel\Operation\Collection $collection */
- $collection = $this->collectionFactory->create();
- $this->joinProcessor->process($collection, \Magento\AsynchronousOperations\Api\Data\OperationInterface::class);
- $this->collectionProcessor->process($searchCriteria, $collection);
- $searchResult->setSearchCriteria($searchCriteria);
- $searchResult->setTotalCount($collection->getSize());
- $searchResult->setItems($collection->getItems());
- return $searchResult;
- }
- }
|