Skip to content

Commit b43e1ef

Browse files
RachanaRachana
authored andcommitted
BUG#AC-6666:fixed complexity static test failures
1 parent 913808a commit b43e1ef

File tree

1 file changed

+27
-26
lines changed

1 file changed

+27
-26
lines changed

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

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -69,22 +69,11 @@ public function getQueryFields(FieldNode $fieldNode, ResolveInfo $resolveInfo):
6969
$query = $fieldNode->selectionSet->selections;
7070
$selectedFields = [];
7171
$fragmentFields = [];
72+
$res = $resolveInfo;
7273
/** @var FieldNode $field */
73-
foreach ($query as $field) {
74-
if ($field->kind === NodeKind::INLINE_FRAGMENT) {
75-
$fragmentFields[] = $this->addInlineFragmentFields($resolveInfo, $field);
76-
} elseif ($field->kind === NodeKind::FRAGMENT_SPREAD &&
77-
($spreadFragmentNode = $resolveInfo->fragments[$field->name->value])) {
78-
79-
foreach ($spreadFragmentNode->selectionSet->selections as $spreadNode) {
80-
$response= $this->setFieldNodeData($spreadNode, $resolveInfo);
81-
$fragmentFields=$response['fragmentFields'];
82-
$selectedFields=$response['selectedFields'];
83-
}
84-
} else {
85-
$selectedFields[] = $field->name->value;
86-
}
87-
}
74+
$response=$this->getQueryData($query, $res);
75+
$selectedFields=$response['selectedFields'];
76+
$fragmentFields=$response['fragmentFields'];
8877
if ($fragmentFields) {
8978
$selectedFields = array_merge([], $selectedFields, ...$fragmentFields);
9079
}
@@ -95,26 +84,38 @@ public function getQueryFields(FieldNode $fieldNode, ResolveInfo $resolveInfo):
9584
}
9685

9786
/**
98-
* Set the field selections for a query node
87+
* Get an array of queried data.
9988
*
100-
* @param array $spreadNode
89+
* @param array $query
10190
* @param ResolveInfo $resolveInfo
10291
*/
103-
public function setFieldNodeData($spreadNode, $resolveInfo)
92+
public function getQueryData($query, $resolveInfo)
10493
{
105-
$fragmentFields =[];
10694
$selectedFields = [];
107-
if (isset($spreadNode->selectionSet->selections)) {
108-
if ($spreadNode->kind === NodeKind::FIELD && isset($spreadNode->name)) {
109-
$selectedFields[] = $spreadNode->name->value;
95+
$fragmentFields = [];
96+
foreach ($query as $field) {
97+
if ($field->kind === NodeKind::INLINE_FRAGMENT) {
98+
$fragmentFields[] = $this->addInlineFragmentFields($resolveInfo, $field);
99+
} elseif ($field->kind === NodeKind::FRAGMENT_SPREAD &&
100+
($spreadFragmentNode = $resolveInfo->fragments[$field->name->value])) {
101+
102+
foreach ($spreadFragmentNode->selectionSet->selections as $spreadNode) {
103+
if (isset($spreadNode->selectionSet->selections)) {
104+
if ($spreadNode->kind === NodeKind::FIELD && isset($spreadNode->name)) {
105+
$selectedFields[] = $spreadNode->name->value;
106+
}
107+
$fragmentFields[] = $this->getQueryFields($spreadNode, $resolveInfo);
108+
} else {
109+
$selectedFields[] = $spreadNode->name->value;
110+
}
111+
}
112+
} else {
113+
$selectedFields[] = $field->name->value;
110114
}
111-
$fragmentFields[] = $this->getQueryFields($spreadNode, $resolveInfo);
112-
} else {
113-
$selectedFields[] = $spreadNode->name->value;
114115
}
115116
$data=[];
116-
$data['fragmentFields']=$fragmentFields;
117117
$data['selectedFields']=$selectedFields;
118+
$data['fragmentFields']=$fragmentFields;
118119
return $data;
119120
}
120121

0 commit comments

Comments
 (0)