setConnectionType($this->manager->getType('member')) ->setArgs([ 'Email' => [ 'type' => Type::string() ] ]) ->setSortableFields(['ID', 'FirstName', 'Email']) ->setConnectionResolver(static function ($object, array $args, $context, ResolveInfo $info) { $member = Member::singleton(); if (!$member->canView($context['currentUser'])) { throw new \InvalidArgumentException(sprintf( '%s view access not permitted', Member::class )); } $list = Member::get(); // Optional filtering by properties if (isset($args['Email'])) { $list = $list->filter('Email', $args['Email']); } return $list; }); } }