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 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
<?php
namespace WPGraphQL\Type\CommentAuthor;
use GraphQL\Type\Definition\ResolveInfo;
use GraphQLRelay\Relay;
use WPGraphQL\AppContext;
use WPGraphQL\Type\WPObjectType;
use WPGraphQL\Types;
class CommentAuthorType extends WPObjectType {
private static $type_name;
private static $fields;
public function __construct() {
self::$type_name = 'CommentAuthor';
$config = [
'name' => self::$type_name,
'description' => __( 'A Comment Author object', 'wp-graphql' ),
'fields' => self::fields(),
'interfaces' => [ self::node_interface() ],
];
parent::__construct( $config );
}
private static function fields() {
if ( null === self::$fields ) :
self::$fields = function() {
$fields = [
'id' => [
'type' => Types::non_null( Types::id() ),
'description' => __( 'The globally unique identifier for the Comment Author user', 'wp-graphql' ),
'resolve' => function( array $comment_author, $args, AppContext $context, ResolveInfo $info ) {
return ! empty( $comment_author['comment_author_email'] ) ? Relay::toGlobalId( 'commentAuthor', $comment_author['comment_author_email'] ) : null;
},
],
'name' => [
'type' => Types::string(),
'description' => __( 'The name for the comment author.', 'wp-graphql' ),
'resolve' => function( array $comment_author, $args, AppContext $context, ResolveInfo $info ) {
return ! empty( $comment_author['comment_author'] ) ? $comment_author['comment_author'] : '';
},
],
'email' => [
'type' => Types::string(),
'description' => __( 'The email for the comment author', 'wp-graphql' ),
'resolve' => function( array $comment_author, $args, AppContext $context, ResolveInfo $info ) {
return ! empty( $comment_author['comment_author_email'] ) ? $comment_author['comment_author_email'] : '';
},
],
'url' => [
'type' => Types::string(),
'description' => __( 'The url the comment author.', 'wp-graphql' ),
'resolve' => function( array $comment_author, $args, AppContext $context, ResolveInfo $info ) {
return ! empty( $comment_author['comment_author_url'] ) ? $comment_author['comment_author_url'] : '';
},
],
];
return self::prepare_fields( $fields, self::$type_name );
};
endif;
return self::$fields;
}
}