Skip to content

Commit 2c23e4c

Browse files
RachanaRachana
authored andcommitted
BUG#AC-6666:Can't use fragments for , or
1 parent 249f6bf commit 2c23e4c

File tree

1 file changed

+5
-13
lines changed

1 file changed

+5
-13
lines changed

app/code/Magento/CatalogGraphQl/Model/AttributesJoiner.php

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -67,19 +67,13 @@ public function getQueryFields(FieldNode $fieldNode, ResolveInfo $resolveInfo):
6767
{
6868
if (null === $this->getFieldNodeSelections($fieldNode)) {
6969
$query = $fieldNode->selectionSet->selections;
70-
$selectedFields = [];
71-
$fragmentFields = [];
72-
$res = $resolveInfo;
7370
/** @var FieldNode $field */
74-
$response=$this->getQueryData($query, $res);
75-
$selectedFields=$response['selectedFields'];
76-
$fragmentFields=$response['fragmentFields'];
77-
if ($fragmentFields) {
78-
$selectedFields = array_merge([], $selectedFields, ...$fragmentFields);
71+
$res = $this->getQueryData($query, $resolveInfo);
72+
if ($res['fragmentFields']) {
73+
$res['selectedFields'] = array_merge([], $res['selectedFields'], ...$res['fragmentFields']);
7974
}
80-
$this->setSelectionsForFieldNode($fieldNode, array_unique($selectedFields));
75+
$this->setSelectionsForFieldNode($fieldNode, array_unique($res['selectedFields']));
8176
}
82-
8377
return $this->getFieldNodeSelections($fieldNode);
8478
}
8579

@@ -91,14 +85,12 @@ public function getQueryFields(FieldNode $fieldNode, ResolveInfo $resolveInfo):
9185
*/
9286
public function getQueryData($query, $resolveInfo)
9387
{
94-
$selectedFields = [];
95-
$fragmentFields = [];
88+
$selectedFields = $fragmentFields = [];
9689
foreach ($query as $field) {
9790
if ($field->kind === NodeKind::INLINE_FRAGMENT) {
9891
$fragmentFields[] = $this->addInlineFragmentFields($resolveInfo, $field);
9992
} elseif ($field->kind === NodeKind::FRAGMENT_SPREAD &&
10093
($spreadFragmentNode = $resolveInfo->fragments[$field->name->value])) {
101-
10294
foreach ($spreadFragmentNode->selectionSet->selections as $spreadNode) {
10395
if (isset($spreadNode->selectionSet->selections)) {
10496
if ($spreadNode->kind === NodeKind::FIELD && isset($spreadNode->name)) {

0 commit comments

Comments
 (0)