/
QueryRootTypeResolver.php
executable file
·49 lines (39 loc) · 1.49 KB
/
QueryRootTypeResolver.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
declare(strict_types=1);
namespace GraphQLByPoP\GraphQLServer\TypeResolvers;
use PoP\Translation\Facades\TranslationAPIFacade;
use GraphQLByPoP\GraphQLServer\ObjectModels\QueryRoot;
use PoP\Engine\TypeResolvers\ReservedNameTypeResolverTrait;
use PoP\ComponentModel\FieldResolvers\FieldResolverInterface;
use GraphQLByPoP\GraphQLServer\TypeDataLoaders\QueryRootTypeDataLoader;
class QueryRootTypeResolver extends AbstractUseRootAsSourceForSchemaTypeResolver
{
use ReservedNameTypeResolverTrait;
public const NAME = 'QueryRoot';
public function getTypeName(): string
{
return self::NAME;
}
public function getSchemaTypeDescription(): ?string
{
$translationAPI = TranslationAPIFacade::getInstance();
return $translationAPI->__('Query type, starting from which the query is executed', 'graphql-server');
}
public function getID(object $resultItem)
{
/** @var QueryRoot */
$queryRoot = $resultItem;
return $queryRoot->getID();
}
public function getTypeDataLoaderClass(): string
{
return QueryRootTypeDataLoader::class;
}
protected function isFieldNameConditionSatisfiedForSchema(FieldResolverInterface $fieldResolver, string $fieldName): bool
{
return
// Field "mutationRoot" is a helper, must not be ported to QueryRoot
!in_array($fieldName, ['mutationRoot'])
&& $fieldResolver->resolveFieldMutationResolverClass($this, $fieldName) === null;
}
}