7
7
8
8
namespace Magento \CatalogGraphQl \Model \Resolver \Category ;
9
9
10
- use Magento \Catalog \Api \ProductRepositoryInterface ;
11
10
use Magento \CatalogGraphQl \DataProvider \Product \SearchCriteriaBuilder ;
12
- use Magento \CatalogGraphQl \Model \Resolver \Products \Query \Search ;
13
- use Magento \Framework \App \ObjectManager ;
14
11
use Magento \Framework \GraphQl \Config \Element \Field ;
15
12
use Magento \Framework \GraphQl \Query \ResolverInterface ;
16
13
use Magento \Framework \GraphQl \Schema \Type \ResolveInfo ;
17
- use Magento \Framework \GraphQl \Query \Resolver \Argument \SearchCriteria \Builder ;
18
- use Magento \CatalogGraphQl \Model \Resolver \Products \Query \Filter ;
19
14
use Magento \Framework \GraphQl \Exception \GraphQlInputException ;
15
+ use Magento \CatalogGraphQl \Model \Resolver \Products \Query \ProductQueryInterface ;
20
16
21
17
/**
22
18
* Category products resolver, used by GraphQL endpoints to retrieve products assigned to a category
23
19
*/
24
20
class Products implements ResolverInterface
25
21
{
26
22
/**
27
- * @var \Magento\Catalog\Api\ProductRepositoryInterface
28
- */
29
- private $ productRepository ;
30
-
31
- /**
32
- * @var Builder
33
- * @deprecated
34
- */
35
- private $ searchCriteriaBuilder ;
36
-
37
- /**
38
- * @var Filter
39
- * @deprecated
40
- */
41
- private $ filterQuery ;
42
-
43
- /**
44
- * @var Search
23
+ * @var ProductQueryInterface
45
24
*/
46
25
private $ searchQuery ;
47
26
@@ -51,25 +30,15 @@ class Products implements ResolverInterface
51
30
private $ searchApiCriteriaBuilder ;
52
31
53
32
/**
54
- * @param ProductRepositoryInterface $productRepository
55
- * @param Builder $searchCriteriaBuilder
56
- * @param Filter $filterQuery
57
- * @param Search $searchQuery
33
+ * @param ProductQueryInterface $searchQuery
58
34
* @param SearchCriteriaBuilder $searchApiCriteriaBuilder
59
35
*/
60
36
public function __construct (
61
- ProductRepositoryInterface $ productRepository ,
62
- Builder $ searchCriteriaBuilder ,
63
- Filter $ filterQuery ,
64
- Search $ searchQuery = null ,
65
- SearchCriteriaBuilder $ searchApiCriteriaBuilder = null
37
+ ProductQueryInterface $ searchQuery ,
38
+ SearchCriteriaBuilder $ searchApiCriteriaBuilder
66
39
) {
67
- $ this ->productRepository = $ productRepository ;
68
- $ this ->searchCriteriaBuilder = $ searchCriteriaBuilder ;
69
- $ this ->filterQuery = $ filterQuery ;
70
- $ this ->searchQuery = $ searchQuery ?? ObjectManager::getInstance ()->get (Search::class);
71
- $ this ->searchApiCriteriaBuilder = $ searchApiCriteriaBuilder ??
72
- ObjectManager::getInstance ()->get (SearchCriteriaBuilder::class);
40
+ $ this ->searchQuery = $ searchQuery ;
41
+ $ this ->searchApiCriteriaBuilder = $ searchApiCriteriaBuilder ;
73
42
}
74
43
75
44
/**
@@ -94,18 +63,17 @@ public function resolve(
94
63
'eq ' => $ value ['id ' ]
95
64
]
96
65
];
97
- $ searchCriteria = $ this ->searchApiCriteriaBuilder ->build ($ args , false );
98
- $ searchResult = $ this ->searchQuery ->getResult ($ searchCriteria , $ info );
66
+ $ searchResult = $ this ->searchQuery ->getResult ($ args , $ info );
99
67
100
68
//possible division by 0
101
- if ($ searchCriteria ->getPageSize ()) {
102
- $ maxPages = ceil ($ searchResult ->getTotalCount () / $ searchCriteria ->getPageSize ());
69
+ if ($ searchResult ->getPageSize ()) {
70
+ $ maxPages = ceil ($ searchResult ->getTotalCount () / $ searchResult ->getPageSize ());
103
71
} else {
104
72
$ maxPages = 0 ;
105
73
}
106
74
107
- $ currentPage = $ searchCriteria ->getCurrentPage ();
108
- if ($ searchCriteria ->getCurrentPage () > $ maxPages && $ searchResult ->getTotalCount () > 0 ) {
75
+ $ currentPage = $ searchResult ->getCurrentPage ();
76
+ if ($ searchResult ->getCurrentPage () > $ maxPages && $ searchResult ->getTotalCount () > 0 ) {
109
77
$ currentPage = new GraphQlInputException (
110
78
__ (
111
79
'currentPage value %1 specified is greater than the number of pages available. ' ,
@@ -118,7 +86,7 @@ public function resolve(
118
86
'total_count ' => $ searchResult ->getTotalCount (),
119
87
'items ' => $ searchResult ->getProductsSearchResult (),
120
88
'page_info ' => [
121
- 'page_size ' => $ searchCriteria ->getPageSize (),
89
+ 'page_size ' => $ searchResult ->getPageSize (),
122
90
'current_page ' => $ currentPage ,
123
91
'total_pages ' => $ maxPages
124
92
]
0 commit comments