Skip to content

Commit 7cf2ef8

Browse files
author
lakshmana
committed
ACP2E-1526 : changed logic based on build failures
1 parent 64c117b commit 7cf2ef8

File tree

2 files changed

+51
-44
lines changed

2 files changed

+51
-44
lines changed

app/code/Magento/Catalog/Model/Product/Attribute/Backend/Media/ImageEntryConverter.php

Lines changed: 1 addition & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,7 @@
1010
use Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryInterfaceFactory;
1111
use Magento\Catalog\Model\Product;
1212
use Magento\Framework\Api\Data\ImageContentInterface;
13-
use Magento\Framework\Api\Data\ImageContentInterfaceFactory;
1413
use Magento\Framework\Api\DataObjectHelper;
15-
use Magento\Framework\App\Filesystem\DirectoryList;
16-
use Magento\Framework\App\ObjectManager;
17-
use Magento\Framework\Exception\FileSystemException;
18-
use Magento\Framework\Filesystem;
19-
use Magento\Framework\Filesystem\Driver\File\Mime;
2014

2115
/**
2216
* Converter for Image media gallery type
@@ -38,42 +32,16 @@ class ImageEntryConverter implements EntryConverterInterface
3832
*/
3933
protected $dataObjectHelper;
4034

41-
/**
42-
* @var ImageContentInterfaceFactory
43-
*/
44-
protected $imageContentInterface;
45-
46-
/**
47-
* Filesystem facade
48-
*
49-
* @var Filesystem
50-
*/
51-
protected $filesystem;
52-
53-
/**
54-
* @var Mime
55-
*/
56-
protected $imageMime;
57-
5835
/**
5936
* @param ProductAttributeMediaGalleryEntryInterfaceFactory $mediaGalleryEntryFactory
6037
* @param DataObjectHelper $dataObjectHelper
61-
* @param ImageContentInterfaceFactory|null $imageContentInterface
62-
* @param Filesystem|null $filesystem
63-
* @param Mime|null $imageMime
6438
*/
6539
public function __construct(
6640
\Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryInterfaceFactory $mediaGalleryEntryFactory,
67-
\Magento\Framework\Api\DataObjectHelper $dataObjectHelper,
68-
ImageContentInterfaceFactory $imageContentInterface = null,
69-
Filesystem $filesystem = null,
70-
Mime $imageMime = null
41+
\Magento\Framework\Api\DataObjectHelper $dataObjectHelper
7142
) {
7243
$this->mediaGalleryEntryFactory = $mediaGalleryEntryFactory;
7344
$this->dataObjectHelper = $dataObjectHelper;
74-
$this->imageContentInterface = $imageContentInterface ?? ObjectManager::getInstance()->get(ImageContentInterfaceFactory::class);
75-
$this->filesystem = $filesystem ?? ObjectManager::getInstance()->get(Filesystem::class);
76-
$this->imageMime = $imageMime ?? ObjectManager::getInstance()->get(Mime::class);
7745
}
7846

7947
/**
@@ -88,7 +56,6 @@ public function getMediaEntryType()
8856
* @param Product $product
8957
* @param array $rowData
9058
* @return ProductAttributeMediaGalleryEntryInterface $entry
91-
* @throws FileSystemException
9259
*/
9360
public function convertTo(Product $product, array $rowData)
9461
{
@@ -106,14 +73,6 @@ public function convertTo(Product $product, array $rowData)
10673
if (isset($image['value_id'])) {
10774
$entry->setId($image['value_id']);
10875
}
109-
$mediaDirectory = $this->filesystem->getDirectoryWrite(DirectoryList::MEDIA);
110-
$path = $mediaDirectory->getAbsolutePath($product->getMediaConfig()->getMediaPath($entry->getFile()));
111-
$imageFileContent = $mediaDirectory->getDriver()->fileGetContents($path);
112-
$entryContent = $this->imageContentInterface->create()
113-
->setName(basename($entry->getFile()))
114-
->setBase64EncodedData(base64_encode($imageFileContent))
115-
->setType($this->imageMime->getMimeType($path));
116-
$entry->setContent($entryContent);
11776
return $entry;
11877
}
11978

app/code/Magento/Catalog/Model/Product/Gallery/GalleryManagement.php

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,16 @@
99
use Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryInterface;
1010
use Magento\Catalog\Api\Data\ProductInterfaceFactory;
1111
use Magento\Catalog\Api\ProductRepositoryInterface;
12+
use Magento\Framework\Api\Data\ImageContentInterface;
13+
use Magento\Framework\Api\Data\ImageContentInterfaceFactory;
14+
use Magento\Framework\App\Filesystem\DirectoryList;
1215
use Magento\Framework\App\ObjectManager;
1316
use Magento\Framework\Exception\InputException;
1417
use Magento\Framework\Exception\NoSuchEntityException;
1518
use Magento\Framework\Exception\StateException;
1619
use Magento\Framework\Api\ImageContentValidatorInterface;
20+
use Magento\Framework\Filesystem;
21+
use Magento\Framework\Filesystem\Driver\File\Mime;
1722

1823
/**
1924
* Class GalleryManagement
@@ -44,25 +49,54 @@ class GalleryManagement implements \Magento\Catalog\Api\ProductAttributeMediaGal
4449
*/
4550
private $deleteValidator;
4651

52+
/**
53+
* @var ImageContentInterfaceFactory
54+
*/
55+
protected $imageContentInterface;
56+
57+
/**
58+
* Filesystem facade
59+
*
60+
* @var Filesystem
61+
*/
62+
protected $filesystem;
63+
64+
/**
65+
* @var Mime
66+
*/
67+
protected $imageMime;
68+
4769
/**
4870
* @param ProductRepositoryInterface $productRepository
4971
* @param ImageContentValidatorInterface $contentValidator
5072
* @param ProductInterfaceFactory|null $productInterfaceFactory
5173
* @param DeleteValidator|null $deleteValidator
74+
* @param ImageContentInterfaceFactory|null $imageContentInterface
75+
* @param Filesystem|null $filesystem
76+
* @param Mime|null $imageMime
5277
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
5378
*/
5479
public function __construct(
5580
ProductRepositoryInterface $productRepository,
5681
ImageContentValidatorInterface $contentValidator,
5782
?ProductInterfaceFactory $productInterfaceFactory = null,
58-
?DeleteValidator $deleteValidator = null
83+
?DeleteValidator $deleteValidator = null,
84+
?ImageContentInterfaceFactory $imageContentInterface = null,
85+
?Filesystem $filesystem = null,
86+
?Mime $imageMime = null
5987
) {
6088
$this->productRepository = $productRepository;
6189
$this->contentValidator = $contentValidator;
6290
$this->productInterfaceFactory = $productInterfaceFactory
6391
?? ObjectManager::getInstance()->get(ProductInterfaceFactory::class);
6492
$this->deleteValidator = $deleteValidator
6593
?? ObjectManager::getInstance()->get(DeleteValidator::class);
94+
$this->imageContentInterface = $imageContentInterface
95+
?? ObjectManager::getInstance()->get(ImageContentInterfaceFactory::class);
96+
$this->filesystem = $filesystem
97+
?? ObjectManager::getInstance()->get(Filesystem::class);
98+
$this->imageMime = $imageMime
99+
?? ObjectManager::getInstance()->get(Mime::class);
66100
}
67101

68102
/**
@@ -217,7 +251,21 @@ public function getList($sku)
217251
{
218252
/** @var \Magento\Catalog\Model\Product $product */
219253
$product = $this->productRepository->get($sku);
254+
$mediaGalleryEntries = $product->getMediaGalleryEntries();
255+
foreach ($mediaGalleryEntries as $entry) {
256+
$entry->setContent($this->getImageContent($product, $entry));
257+
}
258+
return $mediaGalleryEntries;
259+
}
220260

221-
return $product->getMediaGalleryEntries();
261+
private function getImageContent($product, $entry): ImageContentInterface
262+
{
263+
$mediaDirectory = $this->filesystem->getDirectoryWrite(DirectoryList::MEDIA);
264+
$path = $mediaDirectory->getAbsolutePath($product->getMediaConfig()->getMediaPath($entry->getFile()));
265+
$imageFileContent = $mediaDirectory->getDriver()->fileGetContents($path);
266+
return $this->imageContentInterface->create()
267+
->setName(basename($entry->getFile()))
268+
->setBase64EncodedData(base64_encode($imageFileContent))
269+
->setType($this->imageMime->getMimeType($path));
222270
}
223271
}

0 commit comments

Comments
 (0)