14
14
use Magento \Framework \Api \SearchCriteria \CollectionProcessorInterface ;
15
15
use Magento \AsynchronousOperations \Api \Data \OperationSearchResultsInterfaceFactory as SearchResultFactory ;
16
16
use Magento \AsynchronousOperations \Model \ResourceModel \Operation \CollectionFactory ;
17
+ use Magento \Framework \Api \ExtensionAttribute \JoinProcessorInterface ;
17
18
use Magento \Framework \Exception \InputException ;
18
19
use Magento \Framework \Exception \NoSuchEntityException ;
19
20
@@ -37,6 +38,11 @@ class OperationRepository implements \Magento\AsynchronousOperations\Api\Operati
37
38
*/
38
39
private $ searchResultFactory ;
39
40
41
+ /**
42
+ * @var JoinProcessorInterface
43
+ */
44
+ private $ joinProcessor ;
45
+
40
46
/**
41
47
* @var CollectionProcessorInterface
42
48
*/
@@ -51,20 +57,24 @@ class OperationRepository implements \Magento\AsynchronousOperations\Api\Operati
51
57
* Initialize dependencies.
52
58
*
53
59
* @param \Magento\Framework\EntityManager\EntityManager $entityManager
60
+ * @param \Magento\AsynchronousOperations\Model\ResourceModel\Operation\CollectionFactory $collectionFactory
54
61
* @param \Magento\AsynchronousOperations\Api\Data\OperationSearchResultsInterfaceFactory $searchResultFactory
62
+ * @param \Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface $joinProcessor
55
63
* @param \Magento\Framework\Api\SearchCriteria\CollectionProcessorInterface|null $collectionProcessor
56
64
* @param \Psr\Log\LoggerInterface $logger
57
65
*/
58
66
public function __construct (
59
67
EntityManager $ entityManager ,
60
68
CollectionFactory $ collectionFactory ,
61
69
SearchResultFactory $ searchResultFactory ,
70
+ JoinProcessorInterface $ joinProcessor ,
62
71
CollectionProcessorInterface $ collectionProcessor = null ,
63
72
\Psr \Log \LoggerInterface $ logger
64
73
) {
65
74
$ this ->entityManager = $ entityManager ;
66
75
$ this ->collectionFactory = $ collectionFactory ;
67
76
$ this ->searchResultFactory = $ searchResultFactory ;
77
+ $ this ->joinProcessor = $ joinProcessor ;
68
78
$ this ->collectionProcessor = $ collectionProcessor ? : ObjectManager::getInstance ()
69
79
->get (\Magento \Framework \Api \SearchCriteria \CollectionProcessorInterface::class);
70
80
$ this ->logger = $ logger ;
@@ -75,15 +85,17 @@ public function __construct(
75
85
*/
76
86
public function getList (\Magento \Framework \Api \SearchCriteriaInterface $ searchCriteria )
77
87
{
88
+ /** @var \Magento\AsynchronousOperations\Api\Data\OperationSearchResultsInterface $searchResult */
89
+ $ searchResult = $ this ->searchResultFactory ->create ();
90
+
78
91
/** @var \Magento\AsynchronousOperations\Model\ResourceModel\Operation\Collection $collection */
79
92
$ collection = $ this ->collectionFactory ->create ();
93
+ $ this ->joinProcessor ->process ($ collection , \Magento \AsynchronousOperations \Api \Data \OperationInterface::class);
80
94
$ this ->collectionProcessor ->process ($ searchCriteria , $ collection );
81
- $ collection ->load ();
82
- /** @var \Magento\AsynchronousOperations\Api\Data\OperationSearchResultsInterface $searchResult */
83
- $ searchResult = $ this ->searchResultFactory ->create ();
95
+
84
96
$ searchResult ->setSearchCriteria ($ searchCriteria );
85
- $ searchResult ->setItems ($ collection ->getItems ());
86
97
$ searchResult ->setTotalCount ($ collection ->getSize ());
98
+ $ searchResult ->setItems ($ collection ->getItems ());
87
99
88
100
return $ searchResult ;
89
101
}
0 commit comments