Skip to content

Commit 3a82b4a

Browse files
committed
REFACTORING: adjust commands to the common style in the MediaGallery and change exception handle logic
1 parent 3397b2b commit 3a82b4a

File tree

12 files changed

+97
-21
lines changed

12 files changed

+97
-21
lines changed

app/code/Magento/MediaGallery/Model/Asset/Command/DeleteByPath.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,11 @@ public function execute(string $mediaAssetPath): void
6262
$tableName = $this->resourceConnection->getTableName(self::TABLE_MEDIA_GALLERY_ASSET);
6363
$connection->delete($tableName, [self::MEDIA_GALLERY_ASSET_PATH . ' = ?' => $mediaAssetPath]);
6464
} catch (\Exception $exception) {
65+
$this->logger->critical($exception);
6566
$message = __(
6667
'Could not delete media asset with path %path: %error',
6768
['path' => $mediaAssetPath, 'error' => $exception->getMessage()]
6869
);
69-
$this->logger->critical($message);
7070
throw new CouldNotDeleteException($message, $exception);
7171
}
7272
}

app/code/Magento/MediaGallery/Model/Asset/Command/GetById.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,11 @@ public function execute(int $mediaAssetId): AssetInterface
7979

8080
return $this->assetFactory->create(['data' => $data]);
8181
} catch (\Exception $exception) {
82+
$this->logger->critical($exception);
8283
$message = __(
8384
'En error occurred during get media asset with id %id by id: %error',
8485
['id' => $mediaAssetId, 'error' => $exception->getMessage()]
8586
);
86-
$this->logger->critical($message);
8787
throw new IntegrationException($message, $exception);
8888
}
8989
}

app/code/Magento/MediaGallery/Model/Asset/Command/GetByPath.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,8 @@ public function execute(string $mediaFilePath): AssetInterface
8282

8383
return $mediaAssets;
8484
} catch (\Exception $exception) {
85+
$this->logger->critical($exception);
8586
$message = __('An error occurred during get media asset list: %1', $exception->getMessage());
86-
$this->logger->critical($message);
8787
throw new IntegrationException($message, $exception);
8888
}
8989
}

app/code/Magento/MediaGallery/Model/Asset/Command/Save.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ public function execute(AssetInterface $mediaAsset): int
7171
$connection->insertOnDuplicate($tableName, $this->extractor->extract($mediaAsset, AssetInterface::class));
7272
return (int) $connection->lastInsertId($tableName);
7373
} catch (\Exception $exception) {
74+
$this->logger->critical($exception);
7475
$message = __('An error occurred during media asset save: %1', $exception->getMessage());
75-
$this->logger->critical($message);
7676
throw new CouldNotSaveException($message, $exception);
7777
}
7878
}

app/code/Magento/MediaGallery/Model/DataExtractor.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,13 @@
1515
class DataExtractor implements DataExtractorInterface
1616
{
1717
/**
18-
* @inheritdoc
18+
* Extract data from an object using available getters (does not process extension attributes)
19+
*
20+
* @param object $object
21+
* @param string|null $interface
22+
*
23+
* @return array
24+
* @throws \ReflectionException
1925
*/
2026
public function extract($object, string $interface = null): array
2127
{

app/code/Magento/MediaGallery/Model/Keyword/Command/GetAssetKeywords.php

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,12 @@
77

88
namespace Magento\MediaGallery\Model\Keyword\Command;
99

10+
use Magento\Framework\Exception\IntegrationException;
1011
use Magento\MediaGalleryApi\Api\Data\KeywordInterface;
1112
use Magento\MediaGalleryApi\Api\Data\KeywordInterfaceFactory;
1213
use Magento\MediaGalleryApi\Model\Keyword\Command\GetAssetKeywordsInterface;
1314
use Magento\Framework\App\ResourceConnection;
14-
use Magento\Framework\Exception\NotFoundException;
15+
use Psr\Log\LoggerInterface;
1516

1617
/**
1718
* ClassGetAssetKeywords
@@ -31,27 +32,35 @@ class GetAssetKeywords implements GetAssetKeywordsInterface
3132
*/
3233
private $assetKeywordFactory;
3334

35+
/**
36+
* @var LoggerInterface
37+
*/
38+
private $logger;
39+
3440
/**
3541
* GetAssetKeywords constructor.
3642
*
3743
* @param ResourceConnection $resourceConnection
3844
* @param KeywordInterfaceFactory $assetKeywordFactory
45+
* @param LoggerInterface $logger
3946
*/
4047
public function __construct(
4148
ResourceConnection $resourceConnection,
42-
KeywordInterfaceFactory $assetKeywordFactory
49+
KeywordInterfaceFactory $assetKeywordFactory,
50+
LoggerInterface $logger
4351
) {
4452
$this->resourceConnection = $resourceConnection;
4553
$this->assetKeywordFactory = $assetKeywordFactory;
54+
$this->logger = $logger;
4655
}
4756

4857
/**
4958
* Get asset related keywords.
5059
*
5160
* @param int $assetId
5261
*
53-
* @return KeywordInterface[]
54-
* @throws NotFoundException
62+
* @return KeywordInterface[]|[]
63+
* @throws IntegrationException
5564
*/
5665
public function execute(int $assetId): array
5766
{
@@ -71,8 +80,9 @@ public function execute(int $assetId): array
7180

7281
return $keywords;
7382
} catch (\Exception $exception) {
83+
$this->logger->critical($exception);
7484
$message = __('An error occurred during get asset keywords: %1', $exception->getMessage());
75-
throw new NotFoundException($message, $exception);
85+
throw new IntegrationException($message, $exception);
7686
}
7787
}
7888
}

app/code/Magento/MediaGallery/Model/Keyword/Command/SaveAssetKeywords.php

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use Magento\Framework\DB\Adapter\AdapterInterface;
1414
use Magento\Framework\DB\Adapter\Pdo\Mysql;
1515
use Magento\Framework\Exception\CouldNotSaveException;
16+
use Psr\Log\LoggerInterface;
1617

1718
/**
1819
* Class SaveAssetKeywords
@@ -33,22 +34,34 @@ class SaveAssetKeywords implements SaveAssetKeywordsInterface
3334
*/
3435
private $saveAssetLinks;
3536

37+
/**
38+
* @var LoggerInterface
39+
*/
40+
private $logger;
41+
3642
/**
3743
* SaveAssetKeywords constructor.
3844
*
3945
* @param ResourceConnection $resourceConnection
4046
* @param SaveAssetLinks $saveAssetLinks
47+
* @param LoggerInterface $logger
4148
*/
4249
public function __construct(
4350
ResourceConnection $resourceConnection,
44-
SaveAssetLinks $saveAssetLinks
51+
SaveAssetLinks $saveAssetLinks,
52+
LoggerInterface $logger
4553
) {
4654
$this->resourceConnection = $resourceConnection;
4755
$this->saveAssetLinks = $saveAssetLinks;
56+
$this->logger = $logger;
4857
}
4958

5059
/**
51-
* @inheritdoc
60+
* Save asset keywords.
61+
*
62+
* @param KeywordInterface[] $keywords
63+
* @param int $assetId
64+
* @throws CouldNotSaveException
5265
*/
5366
public function execute(array $keywords, int $assetId): void
5467
{
@@ -72,6 +85,7 @@ public function execute(array $keywords, int $assetId): void
7285
$this->saveAssetLinks->execute($assetId, $this->getKeywordIds($data));
7386
}
7487
} catch (\Exception $exception) {
88+
$this->logger->critical($exception);
7589
$message = __('An error occurred during save asset keyword: %1', $exception->getMessage());
7690
throw new CouldNotSaveException($message, $exception);
7791
}

app/code/Magento/MediaGallery/Model/Keyword/Command/SaveAssetLinks.php

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use Magento\Framework\DB\Adapter\AdapterInterface;
1414
use Magento\Framework\DB\Adapter\Pdo\Mysql;
1515
use Magento\Framework\Exception\CouldNotSaveException;
16+
use Psr\Log\LoggerInterface;
1617

1718
/**
1819
* Class SaveAssetLinks
@@ -29,14 +30,22 @@ class SaveAssetLinks
2930
private $resourceConnection;
3031

3132
/**
32-
* SaveAssetKeywords constructor.
33+
* @var LoggerInterface
34+
*/
35+
private $logger;
36+
37+
/**
38+
* SaveAssetLinks constructor.
3339
*
3440
* @param ResourceConnection $resourceConnection
41+
* @param LoggerInterface $logger
3542
*/
3643
public function __construct(
37-
ResourceConnection $resourceConnection
44+
ResourceConnection $resourceConnection,
45+
LoggerInterface $logger
3846
) {
3947
$this->resourceConnection = $resourceConnection;
48+
$this->logger = $logger;
4049
}
4150

4251
/**
@@ -66,6 +75,7 @@ public function execute(int $assetId, array $keywordIds): void
6675
);
6776
}
6877
} catch (\Exception $exception) {
78+
$this->logger->critical($exception);
6979
$message = __('An error occurred during save asset keyword links: %1', $exception->getMessage());
7080
throw new CouldNotSaveException($message, $exception);
7181
}

app/code/Magento/MediaGallery/Plugin/Product/Gallery/Processor.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,7 @@ public function afterRemoveImage(
6767
try {
6868
$this->deleteMediaAssetByPath->execute($file);
6969
} catch (\Exception $exception) {
70-
$message = __('An error occurred during media asset delete at media processor: %1', $exception->getMessage());
71-
$this->logger->critical($message->render());
70+
$this->logger->critical($$exception);
7271
}
7372

7473
return $result;

app/code/Magento/MediaGallery/Test/Unit/Model/Keyword/Command/GetAssetKeywordsTest.php

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,11 @@
1616
use Magento\Framework\Exception\NotFoundException;
1717
use PHPUnit\Framework\MockObject\MockObject;
1818
use PHPUnit\Framework\TestCase;
19+
use Psr\Log\LoggerInterface;
1920

21+
/**
22+
* GetAssetKeywordsTest
23+
*/
2024
class GetAssetKeywordsTest extends TestCase
2125
{
2226
/**
@@ -34,14 +38,21 @@ class GetAssetKeywordsTest extends TestCase
3438
*/
3539
private $assetKeywordFactoryStub;
3640

41+
/**
42+
* @var LoggerInterface|MockObject
43+
*/
44+
private $logger;
45+
3746
protected function setUp(): void
3847
{
3948
$this->resourceConnectionStub = $this->createMock(ResourceConnection::class);
4049
$this->assetKeywordFactoryStub = $this->createMock(KeywordInterfaceFactory::class);
50+
$this->logger = $this->createMock(LoggerInterface::class);
4151

4252
$this->sut = new GetAssetKeywords(
4353
$this->resourceConnectionStub,
44-
$this->assetKeywordFactoryStub
54+
$this->assetKeywordFactoryStub,
55+
$this->logger
4556
);
4657
}
4758

@@ -80,7 +91,7 @@ public function casesProvider(): array
8091
}
8192

8293
/**
83-
* Negative test
94+
* Test case when an error occured during get data request.
8495
*
8596
* @throws NotFoundException
8697
*/
@@ -93,6 +104,9 @@ public function testNotFoundBecauseOfError(): void
93104
->willThrowException((new \Exception()));
94105

95106
$this->expectException(NotFoundException::class);
107+
$this->logger->expects($this->once())
108+
->method('critical')
109+
->willReturnSelf();
96110

97111
$this->sut->execute($randomAssetId);
98112
}

0 commit comments

Comments
 (0)