77
88namespace Magento \CatalogGraphQl \Model \Resolver \Product ;
99
10- use Magento \Catalog \Helper \ImageFactory as CatalogImageHelperFactory ;
1110use Magento \Catalog \Model \Product ;
11+ use Magento \Catalog \Model \Product \ImageFactory ;
1212use Magento \Framework \GraphQl \Config \Element \Field ;
13- use Magento \Framework \GraphQl \Exception \GraphQlInputException ;
1413use Magento \Framework \GraphQl \Query \ResolverInterface ;
1514use Magento \Framework \GraphQl \Schema \Type \ResolveInfo ;
1615
2019class Image implements ResolverInterface
2120{
2221 /**
23- * @var CatalogImageHelperFactory
22+ * Product image factory
23+ *
24+ * @var ImageFactory
2425 */
25- private $ catalogImageHelperFactory ;
26+ private $ productImageFactory ;
2627
2728 /**
28- * @param CatalogImageHelperFactory $catalogImageHelperFactory
29+ * @param ImageFactory $productImageFactory
2930 */
3031 public function __construct (
31- CatalogImageHelperFactory $ catalogImageHelperFactory
32+ ImageFactory $ productImageFactory
3233 ) {
33- $ this ->catalogImageHelperFactory = $ catalogImageHelperFactory ;
34+ $ this ->productImageFactory = $ productImageFactory ;
3435 }
3536
3637 /**
@@ -44,22 +45,21 @@ public function resolve(
4445 array $ args = null
4546 ): array {
4647 if (!isset ($ value ['model ' ])) {
47- throw new GraphQlInputException (__ ('"model" value should be specified ' ));
48+ throw new \ LogicException (__ ('"model" value should be specified ' ));
4849 }
4950 /** @var Product $product */
5051 $ product = $ value ['model ' ];
5152 $ imageType = $ field ->getName ();
53+ $ path = $ product ->getData ($ imageType );
5254
53- $ catalogImageHelper = $ this ->catalogImageHelperFactory ->create ();
54- $ imageUrl = $ catalogImageHelper ->init (
55- $ product ,
56- 'product_ ' . $ imageType ,
57- ['type ' => $ imageType ]
58- )->getUrl ();
55+ $ image = $ this ->productImageFactory ->create ();
56+ $ image ->setDestinationSubdir ($ imageType )
57+ ->setBaseFile ($ path );
58+ $ imageUrl = $ image ->getUrl ();
5959
6060 return [
6161 'url ' => $ imageUrl ,
62- 'path ' => $ product -> getData ( $ imageType )
62+ 'path ' => $ path ,
6363 ];
6464 }
6565}
0 commit comments