for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace SilverStripe\AssetAdmin\GraphQL;
use SilverStripe\Assets\File;
use GraphQL\Type\Definition\ResolveInfo;
use GraphQL\Type\Definition\Type;
use SilverStripe\GraphQL\MutationCreator;
use SilverStripe\GraphQL\OperationResolver;
class UnpublishFileMutationCreator extends MutationCreator implements OperationResolver
{
public function attributes() {
return [
'name '=> 'unpublishFile',
];
}
public function type()
return Type::id();
public function args()
'id' => [
'type' => Type::nonNull(Type::id()),
],
public function resolve($object, array $args, $context, ResolveInfo $info)
$file = File::get()->byId($args['id']);
if(!$file) {
throw new \InvalidArgumentException(sprintf(
'%s#%s not found',
File::class,
$args['id']
));
if(!$file->isPublished()) {
'%s#%s not published',
if(!$file->canPublish($context['currentUser'])) {
'%s#%s unpublish not allowed',
$file->doUnpublish();
return $args['id'];