Skip to content

Commit 10aea3a

Browse files
author
Jeremiah VALERIE
committed
wip
1 parent 05729d0 commit 10aea3a

34 files changed

+118
-82
lines changed

docs/definitions/expression-language.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -386,7 +386,7 @@ MyType:
386386
fields:
387387
name:
388388
type: String!
389-
resolve: "@=service('my_private_service').formatName(value)"
389+
resolve: "@=my_private_service.formatName(value)"
390390
```
391391
392392
To use a vendor private services:

src/Definition/GraphQLServices.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,11 @@
66

77
use GraphQL\Type\Definition\ResolveInfo;
88
use GraphQL\Type\Definition\Type;
9+
use Overblog\GraphQLBundle\Resolver\MutationResolver;
10+
use Overblog\GraphQLBundle\Resolver\QueryResolver;
11+
use Overblog\GraphQLBundle\Resolver\TypeResolver;
912
use Overblog\GraphQLBundle\Validator\InputValidator;
13+
use Overblog\GraphQLBundle\Validator\InputValidatorFactory;
1014
use Symfony\Component\DependencyInjection\ServiceLocator;
1115

1216
/**
@@ -21,7 +25,7 @@ final class GraphQLServices extends ServiceLocator
2125
*/
2226
public function query(string $alias, ...$args)
2327
{
24-
return $this->get('queryResolver')->resolve([$alias, $args]);
28+
return $this->get(QueryResolver::class)->resolve([$alias, $args]);
2529
}
2630

2731
/**
@@ -31,12 +35,12 @@ public function query(string $alias, ...$args)
3135
*/
3236
public function mutation(string $alias, ...$args)
3337
{
34-
return $this->get('mutationResolver')->resolve([$alias, $args]);
38+
return $this->get(MutationResolver::class)->resolve([$alias, $args]);
3539
}
3640

3741
public function getType(string $typeName): ?Type
3842
{
39-
return $this->get('typeResolver')->resolve($typeName);
43+
return $this->get(TypeResolver::class)->resolve($typeName);
4044
}
4145

4246
/**
@@ -47,7 +51,7 @@ public function getType(string $typeName): ?Type
4751
*/
4852
public function createInputValidator($value, ArgumentInterface $args, $context, ResolveInfo $info): InputValidator
4953
{
50-
return $this->get('input_validator_factory')->create(
54+
return $this->get(InputValidatorFactory::class)->create(
5155
new ResolverArgs($value, $args, $context, $info)
5256
);
5357
}

src/DependencyInjection/Compiler/GraphQLServicesPass.php

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
use InvalidArgumentException;
88
use Overblog\GraphQLBundle\Definition\GraphQLServices;
9-
use Overblog\GraphQLBundle\Generator\TypeGenerator;
109
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
1110
use Symfony\Component\DependencyInjection\ContainerBuilder;
1211
use Symfony\Component\DependencyInjection\Reference;
@@ -37,26 +36,30 @@ public function process(ContainerBuilder $container): void
3736

3837
foreach ($taggedServices as $id => $tags) {
3938
foreach ($tags as $attributes) {
40-
if (empty($attributes['alias']) || !is_string($attributes['alias'])) {
41-
throw new InvalidArgumentException(
42-
sprintf('Service "%s" tagged "overblog_graphql.service" should have a valid "alias" attribute.', $id)
43-
);
44-
}
45-
$locateableServices[$attributes['alias']] = new Reference($id);
39+
$locateableServices[] = new Reference($id);
40+
41+
if (array_key_exists('alias', $attributes)) {
42+
if (empty($attributes['alias']) || !is_string($attributes['alias'])) {
43+
throw new InvalidArgumentException(
44+
sprintf('Service "%s" tagged "overblog_graphql.service" should have a valid "alias" attribute.', $id)
45+
);
46+
}
4647

47-
$isPublic = !isset($attributes['public']) || $attributes['public'];
48-
if ($isPublic) {
4948
$expressionLanguageDefinition->addMethodCall(
50-
'addGlobalName',
49+
'addExpressionVariableNameServiceId',
5150
[
52-
sprintf(TypeGenerator::GRAPHQL_SERVICES.'->get(\'%s\')', $attributes['alias']),
5351
$attributes['alias'],
52+
$id,
5453
]
5554
);
5655
}
5756
}
5857
}
59-
$locateableServices['container'] = new Reference('service_container');
58+
$locateableServices[] = new Reference('service_container');
59+
$expressionLanguageDefinition->addMethodCall(
60+
'addExpressionVariableNameServiceId',
61+
['container', 'service_container']
62+
);
6063

6164
$container->findDefinition(GraphQLServices::class)->addArgument($locateableServices);
6265
}

src/ExpressionLanguage/ExpressionFunction/DependencyInjection/Parameter.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ public function __construct($name = 'parameter')
1313
{
1414
parent::__construct(
1515
$name,
16-
fn (string $value) => "$this->gqlServices->get('container')->getParameter($value)",
17-
static fn (array $arguments, $paramName) => $arguments[TypeGenerator::GRAPHQL_SERVICES]->get('container')->getParameter($paramName)
16+
fn (string $value) => "$this->gqlServices->get('service_container')->getParameter($value)",
17+
static fn (array $arguments, $paramName) => $arguments[TypeGenerator::GRAPHQL_SERVICES]->get('service_container')->getParameter($paramName)
1818
);
1919
}
2020
}

src/ExpressionLanguage/ExpressionFunction/DependencyInjection/Service.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ public function __construct($name = 'service')
1313
{
1414
parent::__construct(
1515
$name,
16-
fn (string $serviceId) => "$this->gqlServices->get('container')->get($serviceId)",
17-
static fn (array $arguments, $serviceId) => $arguments[TypeGenerator::GRAPHQL_SERVICES]->get('container')->get($serviceId)
16+
fn (string $serviceId) => "$this->gqlServices->get('service_container')->get($serviceId)",
17+
static fn (array $arguments, $serviceId) => $arguments[TypeGenerator::GRAPHQL_SERVICES]->get('service_container')->get($serviceId)
1818
);
1919
}
2020
}

src/ExpressionLanguage/ExpressionFunction/GraphQL/Arguments.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ public function __construct()
1313
{
1414
parent::__construct(
1515
'arguments',
16-
fn ($mapping, $data) => "$this->gqlServices->get('container')->get('overblog_graphql.arguments_transformer')->getArguments($mapping, $data, \$info)",
17-
static fn (array $arguments, $mapping, $data) => $arguments[TypeGenerator::GRAPHQL_SERVICES]->get('container')->get('overblog_graphql.arguments_transformer')->getArguments($mapping, $data, $arguments['info'])
16+
fn ($mapping, $data) => "$this->gqlServices->get('service_container')->get('overblog_graphql.arguments_transformer')->getArguments($mapping, $data, \$info)",
17+
static fn (array $arguments, $mapping, $data) => $arguments[TypeGenerator::GRAPHQL_SERVICES]->get('service_container')->get('overblog_graphql.arguments_transformer')->getArguments($mapping, $data, $arguments['info'])
1818
);
1919
}
2020
}

src/ExpressionLanguage/ExpressionFunction/Security/GetUser.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,16 @@
66

77
use Overblog\GraphQLBundle\ExpressionLanguage\ExpressionFunction;
88
use Overblog\GraphQLBundle\Generator\TypeGenerator;
9+
use Overblog\GraphQLBundle\Security\Security;
910

1011
final class GetUser extends ExpressionFunction
1112
{
1213
public function __construct()
1314
{
1415
parent::__construct(
1516
'getUser',
16-
fn () => "$this->gqlServices->get('security')->getUser()",
17-
static fn (array $arguments) => $arguments[TypeGenerator::GRAPHQL_SERVICES]->get('security')->getUser()
17+
fn () => "$this->gqlServices->get('".Security::class.'\')->getUser()',
18+
static fn (array $arguments) => $arguments[TypeGenerator::GRAPHQL_SERVICES]->get(Security::class)->getUser()
1819
);
1920
}
2021
}

src/ExpressionLanguage/ExpressionFunction/Security/HasAnyPermission.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,16 @@
66

77
use Overblog\GraphQLBundle\ExpressionLanguage\ExpressionFunction;
88
use Overblog\GraphQLBundle\Generator\TypeGenerator;
9+
use Overblog\GraphQLBundle\Security\Security;
910

1011
final class HasAnyPermission extends ExpressionFunction
1112
{
1213
public function __construct()
1314
{
1415
parent::__construct(
1516
'hasAnyPermission',
16-
fn ($object, $permissions) => "$this->gqlServices->get('security')->hasAnyPermission($object, $permissions)",
17-
static fn (array $arguments, $object, $permissions) => $arguments[TypeGenerator::GRAPHQL_SERVICES]->get('security')->hasAnyPermission($object, $permissions)
17+
fn ($object, $permissions) => "$this->gqlServices->get('".Security::class."')->hasAnyPermission($object, $permissions)",
18+
static fn (array $arguments, $object, $permissions) => $arguments[TypeGenerator::GRAPHQL_SERVICES]->get(Security::class)->hasAnyPermission($object, $permissions)
1819
);
1920
}
2021
}

src/ExpressionLanguage/ExpressionFunction/Security/HasAnyRole.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,16 @@
66

77
use Overblog\GraphQLBundle\ExpressionLanguage\ExpressionFunction;
88
use Overblog\GraphQLBundle\Generator\TypeGenerator;
9+
use Overblog\GraphQLBundle\Security\Security;
910

1011
final class HasAnyRole extends ExpressionFunction
1112
{
1213
public function __construct()
1314
{
1415
parent::__construct(
1516
'hasAnyRole',
16-
fn ($roles) => "$this->gqlServices->get('security')->hasAnyRole($roles)",
17-
static fn (array $arguments, $roles) => $arguments[TypeGenerator::GRAPHQL_SERVICES]->get('security')->hasAnyRole($roles)
17+
fn ($roles) => "$this->gqlServices->get('".Security::class."')->hasAnyRole($roles)",
18+
static fn (array $arguments, $roles) => $arguments[TypeGenerator::GRAPHQL_SERVICES]->get(Security::class)->hasAnyRole($roles)
1819
);
1920
}
2021
}

src/ExpressionLanguage/ExpressionFunction/Security/HasPermission.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,16 @@
66

77
use Overblog\GraphQLBundle\ExpressionLanguage\ExpressionFunction;
88
use Overblog\GraphQLBundle\Generator\TypeGenerator;
9+
use Overblog\GraphQLBundle\Security\Security;
910

1011
final class HasPermission extends ExpressionFunction
1112
{
1213
public function __construct()
1314
{
1415
parent::__construct(
1516
'hasPermission',
16-
fn ($object, $permission) => "$this->gqlServices->get('security')->hasPermission($object, $permission)",
17-
static fn (array $arguments, $object, $permission) => $arguments[TypeGenerator::GRAPHQL_SERVICES]->get('security')->hasPermission($object, $permission)
17+
fn ($object, $permission) => "$this->gqlServices->get('".Security::class."')->hasPermission($object, $permission)",
18+
static fn (array $arguments, $object, $permission) => $arguments[TypeGenerator::GRAPHQL_SERVICES]->get(Security::class)->hasPermission($object, $permission)
1819
);
1920
}
2021
}

0 commit comments

Comments
 (0)