<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\TestModuleJoinDirectives\Model; use Magento\TestModuleJoinDirectives\Api\TestRepositoryInterface; use Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface; /** * Model TestRepository */ class TestRepository implements TestRepositoryInterface { /** * @var \Magento\Quote\Model\ResourceModel\Quote\CollectionFactory */ private $quoteCollectionFactory; /** * @var \Magento\Quote\Api\Data\CartSearchResultsInterfaceFactory */ private $searchResultsDataFactory; /** * @var JoinProcessorInterface */ private $extensionAttributesJoinProcessor; /** * @param \Magento\Quote\Model\ResourceModel\Quote\CollectionFactory $quoteCollectionFactory * @param \Magento\Quote\Api\Data\CartSearchResultsInterfaceFactory $searchResultsDataFactory * @param JoinProcessorInterface $extensionAttributesJoinProcessor */ public function __construct( \Magento\Quote\Model\ResourceModel\Quote\CollectionFactory $quoteCollectionFactory, \Magento\Quote\Api\Data\CartSearchResultsInterfaceFactory $searchResultsDataFactory, JoinProcessorInterface $extensionAttributesJoinProcessor ) { $this->quoteCollectionFactory = $quoteCollectionFactory; $this->searchResultsDataFactory = $searchResultsDataFactory; $this->extensionAttributesJoinProcessor = $extensionAttributesJoinProcessor; } /** * {@inheritdoc} */ public function getList(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria) { $quoteCollection = $this->quoteCollectionFactory->create(); $this->extensionAttributesJoinProcessor->process($quoteCollection); $searchData = $this->searchResultsDataFactory->create(); $searchData->setSearchCriteria($searchCriteria); $searchData->setItems($quoteCollection->getItems()); return $searchData; } }