Skip to content

Commit 6104730

Browse files
author
Vasiliev.A
committed
filter operations by bulk start_time field
1 parent 7d4ff3d commit 6104730

File tree

3 files changed

+33
-5
lines changed

3 files changed

+33
-5
lines changed

app/code/Magento/AsynchronousOperations/Model/Operation.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
/**
1313
* Class Operation
1414
*/
15-
class Operation extends DataObject implements DetailedOperationStatusInterface, ExtensibleDataInterface
15+
class Operation extends DataObject implements DetailedOperationStatusInterface
1616
{
1717
/**
1818
* @inheritDoc

app/code/Magento/AsynchronousOperations/Model/OperationRepository.php

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use Magento\Framework\Api\SearchCriteria\CollectionProcessorInterface;
1515
use Magento\AsynchronousOperations\Api\Data\OperationSearchResultsInterfaceFactory as SearchResultFactory;
1616
use Magento\AsynchronousOperations\Model\ResourceModel\Operation\CollectionFactory;
17+
use Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface;
1718
use Magento\Framework\Exception\InputException;
1819
use Magento\Framework\Exception\NoSuchEntityException;
1920

@@ -37,6 +38,11 @@ class OperationRepository implements \Magento\AsynchronousOperations\Api\Operati
3738
*/
3839
private $searchResultFactory;
3940

41+
/**
42+
* @var JoinProcessorInterface
43+
*/
44+
private $joinProcessor;
45+
4046
/**
4147
* @var CollectionProcessorInterface
4248
*/
@@ -51,20 +57,24 @@ class OperationRepository implements \Magento\AsynchronousOperations\Api\Operati
5157
* Initialize dependencies.
5258
*
5359
* @param \Magento\Framework\EntityManager\EntityManager $entityManager
60+
* @param \Magento\AsynchronousOperations\Model\ResourceModel\Operation\CollectionFactory $collectionFactory
5461
* @param \Magento\AsynchronousOperations\Api\Data\OperationSearchResultsInterfaceFactory $searchResultFactory
62+
* @param \Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface $joinProcessor
5563
* @param \Magento\Framework\Api\SearchCriteria\CollectionProcessorInterface|null $collectionProcessor
5664
* @param \Psr\Log\LoggerInterface $logger
5765
*/
5866
public function __construct(
5967
EntityManager $entityManager,
6068
CollectionFactory $collectionFactory,
6169
SearchResultFactory $searchResultFactory,
70+
JoinProcessorInterface $joinProcessor,
6271
CollectionProcessorInterface $collectionProcessor = null,
6372
\Psr\Log\LoggerInterface $logger
6473
) {
6574
$this->entityManager = $entityManager;
6675
$this->collectionFactory = $collectionFactory;
6776
$this->searchResultFactory = $searchResultFactory;
77+
$this->joinProcessor = $joinProcessor;
6878
$this->collectionProcessor = $collectionProcessor ? : ObjectManager::getInstance()
6979
->get(\Magento\Framework\Api\SearchCriteria\CollectionProcessorInterface::class);
7080
$this->logger = $logger;
@@ -75,15 +85,17 @@ public function __construct(
7585
*/
7686
public function getList(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria)
7787
{
88+
/** @var \Magento\AsynchronousOperations\Api\Data\OperationSearchResultsInterface $searchResult */
89+
$searchResult = $this->searchResultFactory->create();
90+
7891
/** @var \Magento\AsynchronousOperations\Model\ResourceModel\Operation\Collection $collection */
7992
$collection = $this->collectionFactory->create();
93+
$this->joinProcessor->process($collection, \Magento\AsynchronousOperations\Api\Data\OperationInterface::class);
8094
$this->collectionProcessor->process($searchCriteria, $collection);
81-
$collection->load();
82-
/** @var \Magento\AsynchronousOperations\Api\Data\OperationSearchResultsInterface $searchResult */
83-
$searchResult = $this->searchResultFactory->create();
95+
8496
$searchResult->setSearchCriteria($searchCriteria);
85-
$searchResult->setItems($collection->getItems());
8697
$searchResult->setTotalCount($collection->getSize());
98+
$searchResult->setItems($collection->getItems());
8799

88100
return $searchResult;
89101
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0"?>
2+
<!--
3+
/**
4+
* Copyright © 2016 Magento. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Api/etc/extension_attributes.xsd">
9+
<extension_attributes for="Magento\AsynchronousOperations\Api\Data\OperationInterface">
10+
<attribute code="start_time" type="string">
11+
<join reference_table="magento_bulk" join_on_field="bulk_uuid" reference_field="uuid">
12+
<field column="start_time">start_time</field>
13+
</join>
14+
</attribute>
15+
</extension_attributes>
16+
</config>

0 commit comments

Comments
 (0)