Skip to content

Commit 9625a34

Browse files
committed
MC-36456: union implementation
1 parent 5930f37 commit 9625a34

File tree

6 files changed

+11
-16
lines changed

6 files changed

+11
-16
lines changed

app/code/Magento/GraphQl/etc/schema.graphqls

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,12 @@ directive @resolver(class: String="") on QUERY
3030
| OBJECT
3131
| FIELD_DEFINITION
3232
| ARGUMENT_DEFINITION
33-
| INTERFACE
34-
| UNION
3533
| ENUM
3634
| ENUM_VALUE
3735
| INPUT_OBJECT
3836
| INPUT_FIELD_DEFINITION
3937

40-
directive @typeResolver(class: String="") on INTERFACE | OBJECT
38+
directive @typeResolver(class: String="") on INTERFACE | OBJECT | UNION
4139

4240
directive @cache(cacheIdentity: String="" cacheable: Boolean=true) on QUERY
4341

lib/internal/Magento/Framework/GraphQl/Config/Element/UnionFactory.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public function create(
6060
UnionType::class,
6161
[
6262
'name' => $unionData['name'],
63-
'resolver' => $unionData['resolver'],
63+
'typeResolver' => $unionData['typeResolver'],
6464
'types' => $types,
6565
'description' => isset($unionData['description']) ? $unionData['description'] : ''
6666
]

lib/internal/Magento/Framework/GraphQl/Config/Element/UnionType.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class UnionType implements UnionInterface
2525
/**
2626
* @var string
2727
*/
28-
private $resolver;
28+
private $typeResolver;
2929

3030
/**
3131
* @var string
@@ -34,19 +34,19 @@ class UnionType implements UnionInterface
3434

3535
/**
3636
* @param string $name
37-
* @param string $resolver
37+
* @param string $typeResolver
3838
* @param string[] $types
3939
* @param string $description
4040
*/
4141
public function __construct(
4242
string $name,
43-
string $resolver,
43+
string $typeResolver,
4444
array $types,
4545
string $description
4646
) {
4747
$this->name = $name;
4848
$this->types = $types;
49-
$this->resolver = $resolver;
49+
$this->typeResolver = $typeResolver;
5050
$this->description = $description;
5151
}
5252

@@ -75,9 +75,9 @@ public function getTypes() : array
7575
*
7676
* @return string
7777
*/
78-
public function getResolver()
78+
public function getTypeResolver()
7979
{
80-
return $this->resolver;
80+
return $this->typeResolver;
8181
}
8282

8383
/**

lib/internal/Magento/Framework/GraphQl/Schema/Type/Output/ElementMapper/Formatter/ResolveType.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public function format(ConfigElementInterface $configElement, OutputTypeInterfac
4444
return $typeResolver->resolveType($value);
4545
};
4646
} elseif ($configElement instanceof UnionType) {
47-
$typeResolver = $this->objectManager->create($configElement->getResolver());
47+
$typeResolver = $this->objectManager->create($configElement->getTypeResolver());
4848
$config['resolveType'] = function ($value) use ($typeResolver) {
4949
return $typeResolver->resolveType($value);
5050
};

lib/internal/Magento/Framework/GraphQlSchemaStitching/GraphQlReader.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -331,9 +331,6 @@ private static function getModuleNameForRelevantFile(string $file): string
331331
private function addModuleNameToTypes(array $source, string $filePath): array
332332
{
333333
foreach ($source as $typeName => $type) {
334-
if (!isset($type['type'])) {
335-
$x=1;
336-
}
337334
if ((!isset($type['module']))
338335
&& (($type['type'] ?? '' === self::GRAPHQL_INTERFACE && isset($type['typeResolver']))
339336
|| isset($type['implements'])

lib/internal/Magento/Framework/GraphQlSchemaStitching/GraphQlReader/Reader/UnionType.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public function read(\GraphQL\Type\Definition\Type $typeMeta) : array
6464

6565
$unionResolveType = $this->getUnionTypeResolver($typeMeta);
6666
if (!empty($unionResolveType)) {
67-
$result['resolver'] = $unionResolveType;
67+
$result['typeResolver'] = $unionResolveType;
6868
}
6969

7070

@@ -89,7 +89,7 @@ private function getUnionTypeResolver(\GraphQL\Type\Definition\UnionType $unionT
8989
/** @var \GraphQL\Language\AST\NodeList $directives */
9090
$directives = $unionTypeMeta->astNode->directives;
9191
foreach ($directives as $directive) {
92-
if ($directive->name->value == 'resolver') {
92+
if ($directive->name->value == 'typeResolver') {
9393
foreach ($directive->arguments as $directiveArgument) {
9494
if ($directiveArgument->name->value == 'class') {
9595
return $directiveArgument->value->value;

0 commit comments

Comments
 (0)