1010use GraphQL \Language \AST \FieldNode ;
1111use GraphQL \Language \AST \InlineFragmentNode ;
1212use GraphQL \Language \AST \NodeKind ;
13- use Magento \Catalog \Api \Data \CategoryInterface ;
1413use Magento \Eav \Model \Entity \Collection \AbstractCollection ;
1514use Magento \Framework \GraphQl \Schema \Type \ResolveInfo ;
1615
1918 */
2019class AttributesJoiner
2120{
22- private const REQUEST_FIELD_NAME = 'categoryList ' ;
2321 /**
2422 * @var array
2523 */
@@ -77,6 +75,7 @@ public function getQueryFields(FieldNode $fieldNode, ResolveInfo $resolveInfo):
7775 $ fragmentFields [] = $ this ->addInlineFragmentFields ($ resolveInfo , $ field );
7876 } elseif ($ field ->kind === NodeKind::FRAGMENT_SPREAD &&
7977 ($ spreadFragmentNode = $ resolveInfo ->fragments [$ field ->name ->value ])) {
78+
8079 foreach ($ spreadFragmentNode ->selectionSet ->selections as $ spreadNode ) {
8180 if (isset ($ spreadNode ->selectionSet ->selections )) {
8281 $ fragmentFields [] = $ this ->getQueryFields ($ spreadNode , $ resolveInfo );
@@ -86,11 +85,6 @@ public function getQueryFields(FieldNode $fieldNode, ResolveInfo $resolveInfo):
8685 }
8786 } else {
8887 $ selectedFields [] = $ field ->name ->value ;
89- $ selectedFields = $ this ->addIsAnchoredAttributeToSelectedFiled (
90- $ resolveInfo ,
91- $ field ,
92- $ selectedFields
93- );
9488 }
9589 }
9690 if ($ fragmentFields ) {
@@ -178,24 +172,4 @@ private function setSelectionsForFieldNode(FieldNode $fieldNode, array $selected
178172 {
179173 $ this ->queryFields [$ fieldNode ->name ->value ][$ fieldNode ->name ->loc ->start ] = $ selectedFields ;
180174 }
181-
182- /**
183- * Add `is_anchor` attribute to selected field
184- *
185- * @param ResolveInfo $resolveInfo
186- * @param FieldNode $fieldNode
187- * @param array $selectedFields
188- * @return array
189- */
190- private function addIsAnchoredAttributeToSelectedFiled (
191- ResolveInfo $ resolveInfo ,
192- FieldNode $ fieldNode ,
193- array $ selectedFields
194- ): array {
195- if ($ resolveInfo ->fieldName === self ::REQUEST_FIELD_NAME
196- && $ fieldNode ->name ->value === CategoryInterface::KEY_PRODUCT_COUNT ) {
197- $ selectedFields [] = 'is_anchor ' ;
198- }
199- return $ selectedFields ;
200- }
201175}
0 commit comments