Skip to content

Commit 1aec471

Browse files
author
Vasiliev.A
committed
add start_time extension attribute to webapi response
1 parent 5536151 commit 1aec471

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

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

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use Magento\Framework\EntityManager\EntityManager;
1414
use Magento\Framework\Api\SearchCriteria\CollectionProcessorInterface;
1515
use Magento\AsynchronousOperations\Api\Data\OperationSearchResultsInterfaceFactory as SearchResultFactory;
16+
use Magento\AsynchronousOperations\Api\Data\OperationExtensionInterfaceFactory;
1617
use Magento\AsynchronousOperations\Model\ResourceModel\Operation\CollectionFactory;
1718
use Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface;
1819
use Magento\Framework\Exception\InputException;
@@ -43,6 +44,11 @@ class OperationRepository implements \Magento\AsynchronousOperations\Api\Operati
4344
*/
4445
private $joinProcessor;
4546

47+
/**
48+
* @var \Magento\AsynchronousOperations\Api\Data\OperationExtensionInterfaceFactory
49+
*/
50+
private $operationExtensionFactory;
51+
4652
/**
4753
* @var CollectionProcessorInterface
4854
*/
@@ -60,6 +66,7 @@ class OperationRepository implements \Magento\AsynchronousOperations\Api\Operati
6066
* @param \Magento\AsynchronousOperations\Model\ResourceModel\Operation\CollectionFactory $collectionFactory
6167
* @param \Magento\AsynchronousOperations\Api\Data\OperationSearchResultsInterfaceFactory $searchResultFactory
6268
* @param \Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface $joinProcessor
69+
* @param \Magento\AsynchronousOperations\Api\Data\OperationExtensionInterfaceFactory $operationExtensionFactory
6370
* @param \Magento\Framework\Api\SearchCriteria\CollectionProcessorInterface|null $collectionProcessor
6471
* @param \Psr\Log\LoggerInterface $logger
6572
*/
@@ -68,13 +75,15 @@ public function __construct(
6875
CollectionFactory $collectionFactory,
6976
SearchResultFactory $searchResultFactory,
7077
JoinProcessorInterface $joinProcessor,
78+
OperationExtensionInterfaceFactory $operationExtension,
7179
CollectionProcessorInterface $collectionProcessor = null,
7280
\Psr\Log\LoggerInterface $logger
7381
) {
7482
$this->entityManager = $entityManager;
7583
$this->collectionFactory = $collectionFactory;
7684
$this->searchResultFactory = $searchResultFactory;
7785
$this->joinProcessor = $joinProcessor;
86+
$this->operationExtensionFactory = $operationExtension;
7887
$this->collectionProcessor = $collectionProcessor ? : ObjectManager::getInstance()
7988
->get(\Magento\Framework\Api\SearchCriteria\CollectionProcessorInterface::class);
8089
$this->logger = $logger;
@@ -95,7 +104,21 @@ public function getList(\Magento\Framework\Api\SearchCriteriaInterface $searchCr
95104

96105
$searchResult->setSearchCriteria($searchCriteria);
97106
$searchResult->setTotalCount($collection->getSize());
98-
$searchResult->setItems($collection->getItems());
107+
108+
$items = [];
109+
110+
foreach ($collection->getItems() as $item) {
111+
$extensionAttributes = $item->getExtensionAttributes();
112+
if ($extensionAttributes == null) {
113+
$extensionAttributes = $this->operationExtensionFactory->create();
114+
}
115+
$extensionAttributes->setStartTime('dsadsa');
116+
$item->setExtensionAttributes($extensionAttributes);
117+
$items[] = $item;
118+
}
119+
120+
$searchResult->setItems($items);
121+
99122

100123
return $searchResult;
101124
}

app/code/Magento/AsynchronousOperations/etc/extension_attributes.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Api/etc/extension_attributes.xsd">
99
<extension_attributes for="Magento\AsynchronousOperations\Api\Data\OperationInterface">
1010
<attribute code="start_time" type="string">
11+
<resources>
12+
<resource ref="Magento_Logging::system_magento_logging_bulk_operations"/>
13+
</resources>
1114
<join reference_table="magento_bulk" join_on_field="bulk_uuid" reference_field="uuid">
1215
<field column="start_time">start_time</field>
1316
</join>

0 commit comments

Comments
 (0)