Skip to content

Commit b4d73e3

Browse files
committed
magento/adobe-stock-integration#1724: Support batches processing for synchronization queue messages - updated PR with requested changes
1 parent 0030bde commit b4d73e3

File tree

8 files changed

+48
-45
lines changed

8 files changed

+48
-45
lines changed

app/code/Magento/MediaContentSynchronization/Model/Consume.php

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -70,20 +70,22 @@ public function __construct(
7070
public function execute(OperationInterface $operation) : void
7171
{
7272
$identities = $this->serializer->unserialize($operation->getSerializedData());
73-
if (!empty($identities)) {
74-
$contentIdentity = [];
75-
foreach ($identities as $identity) {
76-
$contentIdentity[] = $this->contentIdentityFactory->create(
77-
[
78-
self::ENTITY_TYPE => $identity[self::ENTITY_TYPE],
79-
self::ENTITY_ID => $identity[self::ENTITY_ID],
80-
self::FIELD => $identity[self::FIELD]
81-
]
82-
);
83-
}
84-
$this->synchronizeIdentities->execute($contentIdentity);
85-
} else {
73+
74+
if (empty($identities)) {
8675
$this->synchronize->execute();
76+
return;
77+
}
78+
79+
$contentIdentities = [];
80+
foreach ($identities as $identity) {
81+
$contentIdentities[] = $this->contentIdentityFactory->create(
82+
[
83+
self::ENTITY_TYPE => $identity[self::ENTITY_TYPE],
84+
self::ENTITY_ID => $identity[self::ENTITY_ID],
85+
self::FIELD => $identity[self::FIELD]
86+
]
87+
);
8788
}
89+
$this->synchronizeIdentities->execute($contentIdentities);
8890
}
8991
}

app/code/Magento/MediaContentSynchronization/Test/Integration/Model/PublisherTest.php

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -81,20 +81,19 @@ public function testExecute(array $contentIdentities): void
8181
$consumer->process($maxNumberOfMessages);
8282

8383
// verify synchronized media content
84+
$assetId = 2020;
85+
$entityIds = [];
8486
foreach ($contentIdentities as $contentIdentity) {
85-
$assetId = 2020;
8687
$contentIdentityObject = $this->contentIdentityFactory->create($contentIdentity);
8788
$this->assertEquals([$assetId], $this->getAssetIds->execute($contentIdentityObject));
88-
$synchronizedContentIdentities = $this->getContentIdentities->execute([$assetId]);
89-
$this->assertEquals(2, count($synchronizedContentIdentities));
89+
$entityIds[] = $contentIdentityObject->getEntityId();
90+
}
91+
92+
$synchronizedContentIdentities = $this->getContentIdentities->execute([$assetId]);
93+
$this->assertEquals(2, count($synchronizedContentIdentities));
9094

91-
$syncedIds = [];
92-
foreach ($synchronizedContentIdentities as $syncedContentIdentity) {
93-
$syncedIds[] = $syncedContentIdentity->getEntityId();
94-
}
95-
foreach ($contentIdentityObject as $identityObject) {
96-
$this->assertContains($identityObject->getEntityId(), $syncedIds);
97-
}
95+
foreach ($synchronizedContentIdentities as $syncedContentIdentity) {
96+
$this->assertContains($syncedContentIdentity->getEntityId(), $entityIds);
9897
}
9998
}
10099

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
use Magento\MediaContentApi\Model\GetEntityContentsInterface;
1212
use Magento\MediaContentSynchronizationApi\Api\SynchronizeIdentitiesInterface;
1313

14-
class SynchronizeIdentitiesCatalog implements SynchronizeIdentitiesInterface
14+
class SynchronizeIdentities implements SynchronizeIdentitiesInterface
1515
{
1616
private const FIELD_CATALOG_PRODUCT = 'catalog_product';
1717
private const FIELD_CATALOG_CATEGORY = 'catalog_category';

app/code/Magento/MediaContentSynchronizationCatalog/Test/Integration/Model/Synchronizer/SynchronizeIdentitiesCatalogTest.php

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -84,17 +84,18 @@ public function testExecute(array $mediaContentIdentities): void
8484
$this->assertNotEmpty($contentIdentities);
8585
$this->synchronizeIdentities->execute($contentIdentities);
8686

87+
$assetId = 2020;
88+
$entityIds = [];
8789
foreach ($contentIdentities as $contentIdentity) {
88-
$assetId = 2020;
8990
$this->assertEquals([$assetId], $this->getAssetIds->execute($contentIdentity));
90-
$synchronizedContentIdentities = $this->getContentIdentities->execute([$assetId]);
91-
$this->assertEquals(2, count($synchronizedContentIdentities));
91+
$entityIds[] = $contentIdentity->getEntityId();
92+
}
93+
94+
$synchronizedContentIdentities = $this->getContentIdentities->execute([$assetId]);
95+
$this->assertEquals(2, count($synchronizedContentIdentities));
9296

93-
$syncedIds = [];
94-
foreach ($synchronizedContentIdentities as $syncedContentIdentity) {
95-
$syncedIds[] = $syncedContentIdentity->getEntityId();
96-
}
97-
$this->assertContains($contentIdentity->getEntityId(), $syncedIds);
97+
foreach ($synchronizedContentIdentities as $syncedContentIdentity) {
98+
$this->assertContains($syncedContentIdentity->getEntityId(), $entityIds);
9899
}
99100
}
100101

app/code/Magento/MediaContentSynchronizationCatalog/etc/di.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@
4141
<type name="Magento\MediaContentSynchronizationApi\Model\SynchronizerIdentitiesPool">
4242
<arguments>
4343
<argument name="synchronizers" xsi:type="array">
44-
<item name="media_content_catalog_synchronizeIdentity"
45-
xsi:type="object">Magento\MediaContentSynchronizationCatalog\Model\Synchronizer\SynchronizeIdentitiesCatalog
44+
<item name="media_content_catalog"
45+
xsi:type="object">Magento\MediaContentSynchronizationCatalog\Model\Synchronizer\SynchronizeIdentities
4646
</item>
4747
</argument>
4848
</arguments>

app/code/Magento/MediaContentSynchronizationCms/Model/Synchronizer/SynchronizeIdentitiesCms.php renamed to app/code/Magento/MediaContentSynchronizationCms/Model/Synchronizer/SynchronizeIdentities.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
use Magento\MediaContentApi\Model\GetEntityContentsInterface;
1313
use Magento\MediaContentSynchronizationApi\Api\SynchronizeIdentitiesInterface;
1414

15-
class SynchronizeIdentitiesCms implements SynchronizeIdentitiesInterface
15+
class SynchronizeIdentities implements SynchronizeIdentitiesInterface
1616
{
1717
private const FIELD_CMS_PAGE = 'cms_page';
1818
private const FIELD_CMS_BLOCK = 'cms_block';

app/code/Magento/MediaContentSynchronizationCms/Test/Integration/Model/Synchronizer/SynchronizeIdentitiesCmsTest.php

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -84,17 +84,18 @@ public function testExecute(array $mediaContentIdentities): void
8484
$this->assertNotEmpty($contentIdentities);
8585
$this->synchronizeIdentities->execute($contentIdentities);
8686

87+
$assetId = 2020;
88+
$entityIds = [];
8789
foreach ($contentIdentities as $contentIdentity) {
88-
$assetId = 2020;
8990
$this->assertEquals([$assetId], $this->getAssetIds->execute($contentIdentity));
90-
$synchronizedContentIdentities = $this->getContentIdentities->execute([$assetId]);
91-
$this->assertEquals(2, count($synchronizedContentIdentities));
91+
$entityIds[] = $contentIdentity->getEntityId();
92+
}
93+
94+
$synchronizedContentIdentities = $this->getContentIdentities->execute([$assetId]);
95+
$this->assertEquals(2, count($synchronizedContentIdentities));
9296

93-
$syncedIds = [];
94-
foreach ($synchronizedContentIdentities as $syncedContentIdentity) {
95-
$syncedIds[] = $syncedContentIdentity->getEntityId();
96-
}
97-
$this->assertContains($contentIdentity->getEntityId(), $syncedIds);
97+
foreach ($synchronizedContentIdentities as $syncedContentIdentity) {
98+
$this->assertContains($syncedContentIdentity->getEntityId(), $entityIds);
9899
}
99100
}
100101

app/code/Magento/MediaContentSynchronizationCms/etc/di.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
<type name="Magento\MediaContentSynchronizationApi\Model\SynchronizerIdentitiesPool">
1818
<arguments>
1919
<argument name="synchronizers" xsi:type="array">
20-
<item name="media_content_cms_synchronizeIdentity"
21-
xsi:type="object">Magento\MediaContentSynchronizationCms\Model\Synchronizer\SynchronizeIdentitiesCms
20+
<item name="media_content_cms"
21+
xsi:type="object">Magento\MediaContentSynchronizationCms\Model\Synchronizer\SynchronizeIdentities
2222
</item>
2323
</argument>
2424
</arguments>

0 commit comments

Comments
 (0)