Source of file CreateMemberMutationCreator.php
Size: 1,161 Bytes - Last Modified: 2021-12-23T10:31:47+00:00
/var/www/docs.ssmods.com/process/src/examples/code/CreateMemberMutationCreator.php
12345678910111213141516171819202122232425262728293031323334353637383940414243 | <?php namespace MyProject\GraphQL; use GraphQL\Type\Definition\ResolveInfo; use GraphQL\Type\Definition\Type; use SilverStripe\GraphQL\MutationCreator; use SilverStripe\GraphQL\OperationResolver; use SilverStripe\Security\Member; class CreateMemberMutationCreator extends MutationCreator implements OperationResolver { public function attributes() { return [ 'name' => 'createMember', 'description' => 'Creates a member without permissions or group assignments' ]; } public function type() { return $this->manager->getType('member'); } public function args() { return [ 'Email' => ['type' => Type::nonNull(Type::string())], 'FirstName' => ['type' => Type::string()], 'LastName' => ['type' => Type::string()], ]; } public function resolve($object, array $args, $context, ResolveInfo $info) { if (!singleton(Member::class)->canCreate($context['currentUser'])) { throw new \InvalidArgumentException('Member creation not allowed'); } return (new Member($args))->write(); } } |