Skip to content

Commit 78b8941

Browse files
committed
GQL: Simplify the ItemValue type
The "content" field only added an unnecessary level of nesting with no benefit. Change-Id: I69fd9ac2250b47e70e63961bdd133d208d9f0ef9
1 parent 8389e7d commit 78b8941

File tree

3 files changed

+31
-39
lines changed

3 files changed

+31
-39
lines changed

repo/WikibaseRepo.datatypes.php

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -494,30 +494,32 @@
494494
return new ObjectType( [
495495
'name' => 'ItemValue',
496496
'fields' => [
497-
'content' => [
498-
'type' => Type::nonNull( new ObjectType( [
499-
'name' => 'ValueItem',
500-
'fields' => [
501-
'id' => [
502-
'type' => Type::nonNull( Type::string() ),
503-
'resolve' => fn( EntityIdValue $content ) => $content->getEntityId()->getSerialization(),
504-
],
505-
'label' => [
506-
'type' => Type::string(),
507-
'args' => [
508-
'languageCode' => Type::nonNull( $languageCodeType ),
509-
],
510-
'resolve' => function( EntityIdValue $value, array $args ) use( $itemLabelsResolver ) {
511-
/** @var ItemId $itemId */
512-
$itemId = $value->getEntityId();
513-
'@phan-var ItemId $itemId';
497+
'id' => [
498+
'type' => Type::nonNull( Type::string() ),
499+
'resolve' => function( Statement|PropertyValuePair $valueProvider ) {
500+
/** @var EntityIdValue $idValue */
501+
$idValue = $valueProvider->value->content;
502+
'@phan-var EntityIdValue $idValue';
514503

515-
return $itemLabelsResolver->resolve( $itemId, $args['languageCode'] );
516-
},
517-
],
518-
],
519-
] ) ),
520-
'resolve' => fn( Statement|PropertyValuePair $valueProvider ) => $valueProvider->value->content,
504+
return $idValue->getEntityId()->getSerialization();
505+
},
506+
],
507+
'label' => [
508+
'type' => Type::string(),
509+
'args' => [
510+
'languageCode' => Type::nonNull( $languageCodeType ),
511+
],
512+
'resolve' => function( Statement|PropertyValuePair $valueProvider, array $args ) use( $itemLabelsResolver ) {
513+
/** @var EntityIdValue $idValue */
514+
$idValue = $valueProvider->value->content;
515+
'@phan-var EntityIdValue $idValue';
516+
517+
/** @var ItemId $itemId */
518+
$itemId = $idValue->getEntityId();
519+
'@phan-var ItemId $itemId';
520+
521+
return $itemLabelsResolver->resolve( $itemId, $args['languageCode'] );
522+
},
521523
],
522524
],
523525
] );

repo/domains/reuse/src/Infrastructure/GraphQL/schema.graphql

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,6 @@ type StringValue {
5757
}
5858

5959
type ItemValue {
60-
content: ValueItem!
61-
}
62-
63-
type ValueItem {
6460
id: String!
6561
label(languageCode: LanguageCode!): String
6662
}

repo/domains/reuse/tests/phpunit/Infrastructure/GraphQL/GraphQLServiceTest.php

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,7 @@ public function queryProvider(): Generator {
344344
valueType
345345
}
346346
$statementWithItemValuePropertyId: statements(propertyId: \"$statementWithItemValuePropertyId\") {
347-
value { ...on ItemValue { content { id } } }
347+
value { ...on ItemValue { id } }
348348
valueType
349349
}
350350
} }",
@@ -361,9 +361,7 @@ public function queryProvider(): Generator {
361361
],
362362
$statementWithItemValuePropertyId => [
363363
[
364-
'value' => [
365-
'content' => [ 'id' => $itemValueItemId ],
366-
],
364+
'value' => [ 'id' => $itemValueItemId ],
367365
'valueType' => 'value',
368366
],
369367
],
@@ -461,13 +459,13 @@ public function queryProvider(): Generator {
461459
statements(propertyId: \"{$statementWithItemValuePropertyId}\") {
462460
value {
463461
... on ItemValue {
464-
content { label(languageCode: \"en\") }
462+
label(languageCode: \"en\")
465463
}
466464
}
467465
qualifiers(propertyId: \"{$statementWithItemValueQualifierPropertyId}\") {
468466
value {
469467
... on ItemValue {
470-
content { label(languageCode: \"en\") }
468+
label(languageCode: \"en\")
471469
}
472470
}
473471
}
@@ -479,16 +477,12 @@ public function queryProvider(): Generator {
479477
'statements' => [
480478
[
481479
'value' => [
482-
'content' => [
483-
'label' => self::$statementValueItem->getLabels()->getByLanguage( 'en' )->getText(),
484-
],
480+
'label' => self::$statementValueItem->getLabels()->getByLanguage( 'en' )->getText(),
485481
],
486482
'qualifiers' => [
487483
[
488484
'value' => [
489-
'content' => [
490-
'label' => self::$qualifierValueItem->getLabels()->getByLanguage( 'en' )->getText(),
491-
],
485+
'label' => self::$qualifierValueItem->getLabels()->getByLanguage( 'en' )->getText(),
492486
],
493487
],
494488
],

0 commit comments

Comments
 (0)