Source of file ReadMembersQueryCreator.php
Size: 1,288 Bytes - Last Modified: 2022-02-21T10:00:05+00:00
/var/www/docs.ssmods.com/process/src/src/GraphQL/ReadMembersQueryCreator.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | <?php namespace A2nt\CMSNiceties\GraphQL; if (!class_exists('SilverStripe\GraphQL\QueryCreator', true)) { return; } use GraphQL\Type\Definition\ResolveInfo; use GraphQL\Type\Definition\Type; use SilverStripe\Security\Member; use SilverStripe\GraphQL\OperationResolver; use SilverStripe\GraphQL\QueryCreator; class ReadMembersQueryCreator extends QueryCreator implements OperationResolver { public function attributes() { return [ 'name' => 'readMembers' ]; } public function args() { return [ 'Email' => ['type' => Type::string()] ]; } public function type() { return Type::listOf($this->manager->getType('member')); } public function resolve($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; } } |