@@ -64,7 +64,6 @@ public function join(FieldNode $fieldNode, AbstractCollection $collection, Resol
6464 * @param FieldNode $fieldNode
6565 * @param ResolveInfo $resolveInfo
6666 * @return string[]
67- * @SuppressWarnings(PHPMD.CyclomaticComplexity)
6867 */
6968 public function getQueryFields (FieldNode $ fieldNode , ResolveInfo $ resolveInfo ): array
7069 {
@@ -87,10 +86,11 @@ public function getQueryFields(FieldNode $fieldNode, ResolveInfo $resolveInfo):
8786 }
8887 } else {
8988 $ selectedFields [] = $ field ->name ->value ;
90- if ($ resolveInfo ->fieldName === self ::REQUEST_FIELD_NAME
91- && $ field ->name ->value === CategoryInterface::KEY_PRODUCT_COUNT ) {
92- $ selectedFields [] = 'is_anchor ' ;
93- }
89+ $ selectedFields = $ this ->addIsAnchoredAttributeToSelectedFiled (
90+ $ resolveInfo ,
91+ $ field ,
92+ $ selectedFields
93+ );
9494 }
9595 }
9696 if ($ fragmentFields ) {
@@ -178,4 +178,21 @@ private function setSelectionsForFieldNode(FieldNode $fieldNode, array $selected
178178 {
179179 $ this ->queryFields [$ fieldNode ->name ->value ][$ fieldNode ->name ->loc ->start ] = $ selectedFields ;
180180 }
181+
182+ /**
183+ * Add `is_anchor` attribute to selected field
184+ *
185+ * @param $resolveInfo
186+ * @param $field
187+ * @param $selectedFields
188+ * @return array
189+ */
190+ private function addIsAnchoredAttributeToSelectedFiled ($ resolveInfo , $ field , $ selectedFields ): array
191+ {
192+ if ($ resolveInfo ->fieldName === self ::REQUEST_FIELD_NAME
193+ && $ field ->name ->value === CategoryInterface::KEY_PRODUCT_COUNT ) {
194+ $ selectedFields [] = 'is_anchor ' ;
195+ }
196+ return $ selectedFields ;
197+ }
181198}
0 commit comments