Skip to content

Commit 3a88a35

Browse files
author
Vitaliy Boyko
committed
graphQl-198: refactor related products graph ql business logic to separate module
1 parent 42fcf3d commit 3a88a35

File tree

15 files changed

+96
-36
lines changed

15 files changed

+96
-36
lines changed

app/code/Magento/CatalogGraphQl/etc/graphql/di.xml

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -78,28 +78,6 @@
7878
</argument>
7979
</arguments>
8080
</virtualType>
81-
<virtualType name="Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Related\CrossSellDataProvider" type="Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Related\RelatedDataProvider">
82-
<arguments>
83-
<argument name="linkType" xsi:type="const">Magento\Catalog\Model\Product\Link::LINK_TYPE_CROSSSELL</argument>
84-
<argument name="schemaNodeName" xsi:type="string">crosssell_products</argument>
85-
</arguments>
86-
</virtualType>
87-
<type name="Magento\CatalogGraphQl\Model\Resolver\Product\Related\CrossSellProducts">
88-
<arguments>
89-
<argument name="dataProvider" xsi:type="object">Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Related\CrossSellDataProvider</argument>
90-
</arguments>
91-
</type>
92-
<virtualType name="Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Related\UpSellDataProvider" type="Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Related\RelatedDataProvider">
93-
<arguments>
94-
<argument name="linkType" xsi:type="const">Magento\Catalog\Model\Product\Link::LINK_TYPE_UPSELL</argument>
95-
<argument name="schemaNodeName" xsi:type="string">upsell_products</argument>
96-
</arguments>
97-
</virtualType>
98-
<type name="Magento\CatalogGraphQl\Model\Resolver\Product\Related\UpSellProducts">
99-
<arguments>
100-
<argument name="dataProvider" xsi:type="object">Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Related\UpSellDataProvider</argument>
101-
</arguments>
102-
</type>
10381
<preference for="Magento\Framework\Search\Adapter\Mysql\Query\Builder\Match"
10482
type="Magento\CatalogGraphQl\Model\Search\Adapter\Mysql\Query\Builder\Match" />
10583
</config>

app/code/Magento/CatalogGraphQl/etc/schema.graphqls

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,6 @@ interface ProductInterface @typeResolver(class: "Magento\\CatalogGraphQl\\Model\
9393
websites: [Website] @doc(description: "An array of websites in which the product is available") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\Websites")
9494
product_links: [ProductLinksInterface] @doc(description: "An array of ProductLinks objects") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\ProductLinks")
9595
media_gallery_entries: [MediaGalleryEntry] @doc(description: "An array of MediaGalleryEntry objects") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\MediaGalleryEntries")
96-
related_products: [ProductInterface] @doc(description: "RelatedProduct") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\Related\\RelatedProducts")
97-
upsell_products: [ProductInterface] @doc(description: "RelatedProduct") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\Related\\UpSellProducts")
98-
crosssell_products: [ProductInterface] @doc(description: "RelatedProduct") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\Related\\CrossSellProducts")
9996
tier_prices: [ProductTierPrices] @doc(description: "An array of ProductTierPrices objects") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\TierPrices")
10097
price: ProductPrices @doc(description: "A ProductPrices object, indicating the price of an item") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\Price")
10198
gift_message_available: String @doc(description: "Indicates whether a gift message is available")
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
*/
66
declare(strict_types=1);
77

8-
namespace Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Related\Products;
8+
namespace Magento\RelatedProductGraphQl\Model\DataProvider\Products;
99

1010
use Magento\Catalog\Model\Product;
1111
use Magento\Catalog\Model\Product\Link;
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
*/
66
declare(strict_types=1);
77

8-
namespace Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Related;
8+
namespace Magento\RelatedProductGraphQl\Model\DataProvider;
99

1010
use Magento\Catalog\Model\Product\Link;
1111
use Magento\Catalog\Model\Product\LinkFactory;
1212
use Magento\CatalogGraphQl\Model\Resolver\Product\ProductFieldsSelector;
13-
use Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Related\Products\LinkedProductsDataProvider;
13+
use Magento\RelatedProductGraphQl\Model\DataProvider\Products\LinkedProductsDataProvider;
1414
use Magento\Framework\GraphQl\Schema\Type\ResolveInfo;
1515

1616
/**

app/code/Magento/CatalogGraphQl/Model/Resolver/Product/Related/CrossSellProducts.php renamed to app/code/Magento/RelatedProductGraphQl/Model/Resolver/CrossSellProducts.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
*/
66
declare(strict_types=1);
77

8-
namespace Magento\CatalogGraphQl\Model\Resolver\Product\Related;
8+
namespace Magento\RelatedProductGraphQl\Model\Resolver;
99

10-
use Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Related\RelatedDataProvider;
10+
use Magento\RelatedProductGraphQl\Model\DataProvider\RelatedDataProvider;
1111
use Magento\Framework\GraphQl\Config\Element\Field;
1212
use Magento\Framework\GraphQl\Query\ResolverInterface;
1313
use Magento\Framework\GraphQl\Schema\Type\ResolveInfo;

app/code/Magento/CatalogGraphQl/Model/Resolver/Product/Related/RelatedProducts.php renamed to app/code/Magento/RelatedProductGraphQl/Model/Resolver/RelatedProducts.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
*/
66
declare(strict_types=1);
77

8-
namespace Magento\CatalogGraphQl\Model\Resolver\Product\Related;
8+
namespace Magento\RelatedProductGraphQl\Model\Resolver;
99

10-
use Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Related\RelatedDataProvider;
10+
use Magento\RelatedProductGraphQl\Model\DataProvider\RelatedDataProvider;
1111
use Magento\Framework\GraphQl\Config\Element\Field;
1212
use Magento\Framework\GraphQl\Query\ResolverInterface;
1313
use Magento\Framework\GraphQl\Schema\Type\ResolveInfo;

app/code/Magento/CatalogGraphQl/Model/Resolver/Product/Related/UpSellProducts.php renamed to app/code/Magento/RelatedProductGraphQl/Model/Resolver/UpSellProducts.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
*/
66
declare(strict_types=1);
77

8-
namespace Magento\CatalogGraphQl\Model\Resolver\Product\Related;
8+
namespace Magento\RelatedProductGraphQl\Model\Resolver;
99

10-
use Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Related\RelatedDataProvider;
10+
use Magento\RelatedProductGraphQl\Model\DataProvider\RelatedDataProvider;
1111
use Magento\Framework\GraphQl\Config\Element\Field;
1212
use Magento\Framework\GraphQl\Query\ResolverInterface;
1313
use Magento\Framework\GraphQl\Schema\Type\ResolveInfo;
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"name": "magento/module-related-product-graph-ql",
3+
"description": "N/A",
4+
"type": "magento2-module",
5+
"require": {
6+
"php": "~7.1.3||~7.2.0",
7+
"magento/module-catalog": "*",
8+
"magento/module-catalog-graph-ql": "*",
9+
"magento/framework": "*"
10+
},
11+
"suggest": {
12+
"magento/module-graph-ql": "*"
13+
},
14+
"license": [
15+
"OSL-3.0",
16+
"AFL-3.0"
17+
],
18+
"autoload": {
19+
"files": [
20+
"registration.php"
21+
],
22+
"psr-4": {
23+
"Magento\\RelatedProductGraphQl\\": ""
24+
}
25+
}
26+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?xml version="1.0"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
9+
<virtualType name="Magento\RelatedProductGraphQl\Model\DataProvider\CrossSellDataProvider" type="Magento\RelatedProductGraphQl\Model\DataProvider\RelatedDataProvider">
10+
<arguments>
11+
<argument name="linkType" xsi:type="const">Magento\Catalog\Model\Product\Link::LINK_TYPE_CROSSSELL</argument>
12+
<argument name="schemaNodeName" xsi:type="string">crosssell_products</argument>
13+
</arguments>
14+
</virtualType>
15+
<type name="Magento\RelatedProductGraphQl\Model\Resolver\CrossSellProducts">
16+
<arguments>
17+
<argument name="dataProvider" xsi:type="object">Magento\RelatedProductGraphQl\Model\DataProvider\CrossSellDataProvider</argument>
18+
</arguments>
19+
</type>
20+
<virtualType name="Magento\RelatedProductGraphQl\Model\DataProvider\UpSellDataProvider" type="Magento\RelatedProductGraphQl\Model\DataProvider\RelatedDataProvider">
21+
<arguments>
22+
<argument name="linkType" xsi:type="const">Magento\Catalog\Model\Product\Link::LINK_TYPE_UPSELL</argument>
23+
<argument name="schemaNodeName" xsi:type="string">upsell_products</argument>
24+
</arguments>
25+
</virtualType>
26+
<type name="Magento\RelatedProductGraphQl\Model\Resolver\UpSellProducts">
27+
<arguments>
28+
<argument name="dataProvider" xsi:type="object">Magento\RelatedProductGraphQl\Model\DataProvider\UpSellDataProvider</argument>
29+
</arguments>
30+
</type>
31+
</config>
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
9+
<module name="Magento_RelatedProductGraphQl"/>
10+
</config>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Copyright © Magento, Inc. All rights reserved.
2+
# See COPYING.txt for license details.
3+
4+
interface ProductInterface {
5+
related_products: [ProductInterface] @doc(description: "RelatedProduct") @resolver(class: "Magento\\RelatedProductGraphQl\\Model\\Resolver\\RelatedProducts")
6+
upsell_products: [ProductInterface] @doc(description: "RelatedProduct") @resolver(class: "Magento\\RelatedProductGraphQl\\Model\\Resolver\\UpSellProducts")
7+
crosssell_products: [ProductInterface] @doc(description: "RelatedProduct") @resolver(class: "Magento\\RelatedProductGraphQl\\Model\\Resolver\\CrossSellProducts")
8+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
use Magento\Framework\Component\ComponentRegistrar;
8+
9+
ComponentRegistrar::register(ComponentRegistrar::MODULE, 'Magento_RelatedProductGraphQl', __DIR__);

composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,7 @@
201201
"magento/module-quote": "*",
202202
"magento/module-quote-analytics": "*",
203203
"magento/module-quote-graph-ql": "*",
204+
"magento/module-related-product-graph-ql": "*",
204205
"magento/module-release-notification": "*",
205206
"magento/module-reports": "*",
206207
"magento/module-require-js": "*",

composer.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductRelatedProductsTest.php renamed to dev/tests/api-functional/testsuite/Magento/GraphQl/RelatedProduct/ProductRelatedProductsTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
*/
66
declare(strict_types=1);
77

8-
namespace Magento\GraphQl\Catalog;
8+
namespace Magento\GraphQl\RelatedProduct;
99

1010
use Magento\TestFramework\TestCase\GraphQlAbstract;
1111

0 commit comments

Comments
 (0)