/
PublicationNoticeType.php
81 lines (73 loc) · 2.01 KB
/
PublicationNoticeType.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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php
namespace SilverStripe\AssetAdmin\GraphQL;
use SilverStripe\Dev\Deprecation;
use GraphQL\Type\Definition\Type;
use SilverStripe\GraphQL\Manager;
use SilverStripe\GraphQL\TypeCreator;
use GraphQL\Type\Definition\ResolveInfo;
use Exception;
if (!class_exists(TypeCreator::class)) {
return;
}
/**
* @deprecated 1.8.0 Use the latest version of graphql instead
*/
class PublicationNoticeType extends TypeCreator
{
/**
* @return array
*/
public function __construct(Manager $manager = null)
{
Deprecation::notice('1.8.0', 'Use the latest version of graphql instead', Deprecation::SCOPE_CLASS);
parent::__construct($manager);
}
public function attributes()
{
return [
'name' => 'PublicationNotice',
'description' => 'Describes an error that occurred on a failed publication operation',
];
}
/**
* @return array
*/
public function fields()
{
return [
'noticeType' => [
'type' => Type::nonNull(Type::string()),
'description' => 'The type of notice',
],
'message' => [
'type' => Type::string(),
'description' => 'Relevant information pertaining to the error',
],
'ids' => [
'type' => Type::listOf(Type::id()),
'description' => 'Relevant record IDs',
],
];
}
/**
* @param OperationException $value
* @param array $args
* @param array $context
* @param ResolveInfo $info
* @return mixed
* @throws Exception
*/
public function resolveField($value, $args, $context, ResolveInfo $info)
{
$fieldName = $info->fieldName;
$method = 'get'.$fieldName;
if (method_exists($value, $method)) {
return $value->$method();
}
throw new Exception(sprintf(
'Invalid field %s on %s',
$fieldName,
get_class($value)
));
}
}