-
-
Notifications
You must be signed in to change notification settings - Fork 38
/
UserSortInputObjectTypeResolver.php
executable file
·55 lines (47 loc) · 1.88 KB
/
UserSortInputObjectTypeResolver.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
50
51
52
53
54
55
<?php
declare(strict_types=1);
namespace PoPCMSSchema\Users\TypeResolvers\InputObjectType;
use PoP\ComponentModel\TypeResolvers\InputTypeResolverInterface;
use PoPCMSSchema\Users\Constants\UserOrderBy;
use PoPCMSSchema\Users\TypeResolvers\EnumType\UserOrderByEnumTypeResolver;
use PoPCMSSchema\SchemaCommons\TypeResolvers\InputObjectType\SortInputObjectTypeResolver;
class UserSortInputObjectTypeResolver extends SortInputObjectTypeResolver
{
private ?UserOrderByEnumTypeResolver $customPostSortByEnumTypeResolver = null;
final public function setUserOrderByEnumTypeResolver(UserOrderByEnumTypeResolver $customPostSortByEnumTypeResolver): void
{
$this->customPostSortByEnumTypeResolver = $customPostSortByEnumTypeResolver;
}
final protected function getUserOrderByEnumTypeResolver(): UserOrderByEnumTypeResolver
{
if ($this->customPostSortByEnumTypeResolver === null) {
/** @var UserOrderByEnumTypeResolver */
$customPostSortByEnumTypeResolver = $this->instanceManager->getInstance(UserOrderByEnumTypeResolver::class);
$this->customPostSortByEnumTypeResolver = $customPostSortByEnumTypeResolver;
}
return $this->customPostSortByEnumTypeResolver;
}
public function getTypeName(): string
{
return 'UserSortInput';
}
/**
* @return array<string,InputTypeResolverInterface>
*/
public function getInputFieldNameTypeResolvers(): array
{
return array_merge(
parent::getInputFieldNameTypeResolvers(),
[
'by' => $this->getUserOrderByEnumTypeResolver(),
]
);
}
public function getInputFieldDefaultValue(string $inputFieldName): mixed
{
return match ($inputFieldName) {
'by' => UserOrderBy::ID,
default => parent::getInputFieldDefaultValue($inputFieldName),
};
}
}