Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rename classes, tags and functions #786

Merged
merged 34 commits into from
Jan 26, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
aa3dce1
Rename GlobalVariables to GraphQLServices
murtukov Nov 5, 2020
925dbd2
Fix name conflict
murtukov Nov 5, 2020
a7f71f5
Change APIs
murtukov Nov 6, 2020
e72a0bb
Interim
murtukov Nov 30, 2020
7ca136d
Make 100% tests pass
murtukov Nov 30, 2020
b9265d6
- Rename 'graphql_service' into 'service'
murtukov Nov 30, 2020
703c23b
Fix code quality
murtukov Nov 30, 2020
9981b5a
Merge branch 'master' into refactor/global-variables
murtukov Nov 30, 2020
ca77e02
Rename ResolverResolver into QueryResolver
murtukov Nov 30, 2020
e292064
Rename ResolverInterface into QueryInterface
murtukov Nov 30, 2020
3126859
- Rename 'overblog_graphql.resolver' into 'overblog_graphql.query'
murtukov Nov 30, 2020
b4dfa0f
Update documentation
murtukov Nov 30, 2020
0fa4305
- Revert creating the 'getType' expression function
murtukov Nov 30, 2020
fd71ff8
Fix new PHPStan errors
murtukov Dec 1, 2020
00daace
Add links
murtukov Jan 11, 2021
81a33c2
Rollback change done to documentation
murtukov Jan 11, 2021
c8954e5
Merge branch 'master' into refactor/global-variables
murtukov Jan 11, 2021
7f0e36f
Update the UPGRADE-1.0.md
murtukov Jan 11, 2021
adc0c9c
Merge remote-tracking branch 'origin/refactor/global-variables' into …
murtukov Jan 11, 2021
1f44eef
Rename attribute in GraphQLServices class
murtukov Jan 11, 2021
f8716d7
Add deprecations
murtukov Jan 11, 2021
fb977ee
Fix static-analysis & update UPGRADE-1.0.md
murtukov Jan 14, 2021
9cb1b4d
Fix CS
murtukov Jan 14, 2021
e4d5dd9
Remove UPGRADE-files for previous versions
murtukov Jan 14, 2021
9a0877f
Merge branch 'master' into refactor/global-variables
murtukov Jan 14, 2021
7923316
Merge branch 'master' into refactor/global-variables
murtukov Jan 20, 2021
9a1c272
Add proper deprecation calls
murtukov Jan 20, 2021
f8728b9
Fix the signature check
murtukov Jan 20, 2021
b483a97
Add tests for legacy code
murtukov Jan 20, 2021
42fa9e3
Combine all UPGRADE-files into a single one
murtukov Jan 20, 2021
a4067e6
Check proxy resolver for amount of params
murtukov Jan 24, 2021
9ed59f4
Merge branch 'master' into refactor/global-variables
murtukov Jan 25, 2021
1948b1f
Fix CS
murtukov Jan 25, 2021
16b44e7
Remove BC for the `mutation` expression function
murtukov Jan 26, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Interim
  • Loading branch information
murtukov committed Nov 30, 2020
commit e72a0bbcb5ff502ce164a1994884d2f5bb6c1a6e
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ public function __construct($name = 'mutation')
{
parent::__construct(
$name,
function ($alias, ...$args) {
$args = (count($args) > 0) ? (', ' . join(', ', $args)) : '';
return "$this->gqlServices->mutation($alias$args)";
function (string $alias, ...$args) {
$args = count($args) > 0 ? ', ' . join(', ', $args) : '';
return "$this->gqlServices->mutation({$alias}{$args})";
}
);
}
Expand Down
23 changes: 23 additions & 0 deletions src/ExpressionLanguage/ExpressionFunction/GraphQL/Query.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?php

declare(strict_types=1);

namespace Overblog\GraphQLBundle\ExpressionLanguage\ExpressionFunction\GraphQL;

use Overblog\GraphQLBundle\ExpressionLanguage\ExpressionFunction;

final class Query extends ExpressionFunction
{
public const NAME = 'query';

public function __construct($name = self::NAME)
{
parent::__construct(
$name,
function (string $alias, ...$args) {
$args = (count($args) > 0) ? (', ' . join(', ', $args)) : '';
return "$this->gqlServices->query({$alias}{$args})";
}
);
}
}
18 changes: 0 additions & 18 deletions src/ExpressionLanguage/ExpressionFunction/GraphQL/Resolver.php

This file was deleted.

4 changes: 3 additions & 1 deletion src/Relay/Mutation/MutationFieldDefinition.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

use InvalidArgumentException;
use Overblog\GraphQLBundle\Definition\Builder\MappingInterface;
use Overblog\GraphQLBundle\ExpressionLanguage\ExpressionFunction\GraphQL\Query;
use function is_array;
use function is_string;
use function json_encode;
Expand All @@ -20,13 +21,14 @@ final class MutationFieldDefinition implements MappingInterface
public function toMappingDefinition(array $config): array
{
$mutateAndGetPayload = $this->cleanMutateAndGetPayload($config);
$expFuncName = Query::NAME;

return [
'type' => $this->extractPayloadType($config),
'args' => [
'input' => ['type' => $this->extractInputType($config)],
],
'resolve' => "@=resolver('relay_mutation_field', [args, context, info, mutateAndGetPayloadCallback($mutateAndGetPayload)])",
'resolve' => "@=$expFuncName('relay_mutation_field', args, context, info, mutateAndGetPayloadCallback($mutateAndGetPayload))",
];
}

Expand Down
2 changes: 1 addition & 1 deletion src/Resolver/AbstractProxyResolver.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public function resolve($input)
$options = $this->getSolutionOptions($alias);
$func = [$solution, $options['method']];

return call_user_func_array($func, $funcArgs);
return $func(...$funcArgs);
}

abstract protected function unresolvableMessage(string $alias): string;
Expand Down
6 changes: 3 additions & 3 deletions src/Resources/config/expression_language_functions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,6 @@ services:
class: Overblog\GraphQLBundle\ExpressionLanguage\ExpressionFunction\GraphQL\Mutation
arguments: { $name : 'mut' }

expression_function.resolver_alias:
class: Overblog\GraphQLBundle\ExpressionLanguage\ExpressionFunction\GraphQL\Resolver
arguments: { $name : 'res' }
expression_function.query_alias:
class: Overblog\GraphQLBundle\ExpressionLanguage\ExpressionFunction\GraphQL\Query
arguments: { $name : 'q' }
14 changes: 7 additions & 7 deletions tests/Config/Parser/AnnotationParserTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -79,10 +79,10 @@ public function testTypes(): void
// Test an interface
$this->expect('Character', 'interface', [
'description' => 'The character interface',
'resolveType' => "@=resolver('character_type', [value])",
'resolveType' => "@=query('character_type', value)",
'fields' => [
'name' => ['type' => 'String!', 'description' => 'The name of the character'],
'friends' => ['type' => '[Character]', 'description' => 'The friends of the character', 'resolve' => "@=resolver('App\\\\MyResolver::getFriends')"],
'friends' => ['type' => '[Character]', 'description' => 'The friends of the character', 'resolve' => "@=query('App\\\\MyResolver::getFriends')"],
],
]);

Expand All @@ -92,7 +92,7 @@ public function testTypes(): void
'interfaces' => ['Character'],
'fields' => [
'name' => ['type' => 'String!', 'description' => 'The name of the character'],
'friends' => ['type' => '[Character]', 'description' => 'The friends of the character', 'resolve' => "@=resolver('App\\\\MyResolver::getFriends')"],
'friends' => ['type' => '[Character]', 'description' => 'The friends of the character', 'resolve' => "@=query('App\\\\MyResolver::getFriends')"],
'race' => ['type' => 'Race'],
],
]);
Expand All @@ -103,7 +103,7 @@ public function testTypes(): void
'isTypeOf' => "@=isTypeOf('App\Entity\Droid')",
'fields' => [
'name' => ['type' => 'String!', 'description' => 'The name of the character'],
'friends' => ['type' => '[Character]', 'description' => 'The friends of the character', 'resolve' => "@=resolver('App\\\\MyResolver::getFriends')"],
'friends' => ['type' => '[Character]', 'description' => 'The friends of the character', 'resolve' => "@=query('App\\\\MyResolver::getFriends')"],
'memory' => ['type' => 'Int!'],
'planet_allowedPlanets' => [
'type' => '[Planet]',
Expand All @@ -129,7 +129,7 @@ public function testTypes(): void
'fieldsDefaultAccess' => '@=isAuthenticated()',
'fields' => [
'name' => ['type' => 'String!', 'description' => 'The name of the character'],
'friends' => ['type' => '[Character]', 'description' => 'The friends of the character', 'resolve' => "@=resolver('App\\\\MyResolver::getFriends')"],
'friends' => ['type' => '[Character]', 'description' => 'The friends of the character', 'resolve' => "@=query('App\\\\MyResolver::getFriends')"],
'realName' => ['type' => 'String!', 'access' => "@=hasRole('SITH_LORD')"],
'location' => ['type' => 'String!', 'public' => "@=hasRole('SITH_LORD')"],
'currentMaster' => ['type' => 'Sith', 'resolve' => "@=service('master_resolver').getMaster(value)"],
Expand Down Expand Up @@ -158,7 +158,7 @@ public function testTypes(): void
'builder' => 'PlanetFilterArgBuilder',
'config' => ['option2' => 'value2'],
],
'resolve' => "@=resolver('closest_planet', [args['filter']])",
'resolve' => "@=query('closest_planet', args['filter'])",
],
],
]);
Expand Down Expand Up @@ -237,7 +237,7 @@ public function testInterfaceAutoguessed(): void
'interfaces' => ['Armored', 'Character'],
'fields' => [
'name' => ['type' => 'String!', 'description' => 'The name of the character'],
'friends' => ['type' => '[Character]', 'description' => 'The friends of the character', 'resolve' => "@=resolver('App\\\\MyResolver::getFriends')"],
'friends' => ['type' => '[Character]', 'description' => 'The friends of the character', 'resolve' => "@=query('App\\\\MyResolver::getFriends')"],
'planet_armorResistance' => [
'type' => 'Int!',
'resolve' => '@=call(service(\'Overblog\\\\GraphQLBundle\\\\Tests\\\\Config\\\\Parser\\\\fixtures\\\\annotations\\\\Repository\\\\PlanetRepository\').getArmorResistance, arguments({}, args))',
Expand Down
2 changes: 1 addition & 1 deletion tests/Config/Parser/fixtures/annotations/Type/Armored.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
use Overblog\GraphQLBundle\Annotation as GQL;

/**
* @GQL\TypeInterface(resolveType="@=resolver('character_type', [value])")
* @GQL\TypeInterface(resolveType="@=query('character_type', value)")
* @GQL\Description("The armored interface")
*/
interface Armored
Expand Down
4 changes: 2 additions & 2 deletions tests/Config/Parser/fixtures/annotations/Type/Character.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
use Overblog\GraphQLBundle\Annotation as GQL;

/**
* @GQL\TypeInterface(resolveType="@=resolver('character_type', [value])")
* @GQL\TypeInterface(resolveType="@=query('character_type', value)")
* @GQL\Description("The character interface")
*/
abstract class Character
Expand All @@ -19,7 +19,7 @@ abstract class Character
protected string $name;

/**
* @GQL\Field(type="[Character]", resolve="@=resolver('App\\MyResolver::getFriends')")
* @GQL\Field(type="[Character]", resolve="@=query('App\\MyResolver::getFriends')")
* @GQL\Description("The friends of the character")
*/
protected array $friends;
Expand Down
2 changes: 1 addition & 1 deletion tests/Config/Parser/fixtures/annotations/Type/Planet.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class Planet
* @GQL\Field(
* type="Planet",
* argsBuilder={"PlanetFilterArgBuilder", {"option2": "value2"}},
* resolve="@=resolver('closest_planet', [args['filter']])"
* resolve="@=query('closest_planet', args.filter)"
* )
*/
public Planet $closestPlanet;
Expand Down
4 changes: 2 additions & 2 deletions tests/DependencyInjection/Builder/MutationField.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public function toMappingDefinition(array $config): array

$field = [
'type' => $payloadTypeName.'!',
'resolve' => sprintf('@=mutation("%s", [args["input"]])', $resolver),
'resolve' => sprintf('@=mutation("%s", args.input)', $resolver),
'args' => [
'input' => $inputTypeName.'!',
],
Expand All @@ -50,7 +50,7 @@ public function toMappingDefinition(array $config): array
'config' => [
'types' => [$payloadSuccessTypeName, $payloadFailureTypeName],
'resolveType' => sprintf(
'@=resolver("PayloadTypeResolver", [value, "%s", "%s"])',
'@=query("PayloadTypeResolver", value, "%s", "%s")',
$payloadSuccessTypeName,
$payloadFailureTypeName
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -392,7 +392,7 @@ public function testCustomBuilders(): void
'decorator' => false,
'config' => [
'types' => ['FooSuccessPayload', 'FooFailurePayload'],
'resolveType' => '@=resolver("PayloadTypeResolver", [value, "FooSuccessPayload", "FooFailurePayload"])',
'resolveType' => '@=query("PayloadTypeResolver", value, "FooSuccessPayload", "FooFailurePayload")',
'name' => 'FooPayload',
],
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,25 @@
namespace Overblog\GraphQLBundle\Tests\ExpressionLanguage\ExpressionFunction\GraphQL;

use Overblog\GraphQLBundle\ExpressionLanguage\Exception\EvaluatorIsNotAllowedException;
use Overblog\GraphQLBundle\ExpressionLanguage\ExpressionFunction\GraphQL\Resolver;
use Overblog\GraphQLBundle\ExpressionLanguage\ExpressionFunction\GraphQL\Query;
use Overblog\GraphQLBundle\Tests\ExpressionLanguage\TestCase;

class ResolverTest extends TestCase
class QueryTest extends TestCase
{
protected function getFunctions()
{
return [new Resolver(), new Resolver('res')];
return [new Query(), new Query('q')];
}

public function testEvaluatorThrowsException(): void
{
$this->expectException(EvaluatorIsNotAllowedException::class);
$this->expressionLanguage->evaluate('resolver()');
$this->expressionLanguage->evaluate('query()');
}

public function testEvaluatorThrowsExceptionByAlias(): void
{
$this->expectException(EvaluatorIsNotAllowedException::class);
$this->expressionLanguage->evaluate('res()');
$this->expressionLanguage->evaluate('q()');
}
}
1 change: 0 additions & 1 deletion tests/Functional/App/Resolver/NodeResolver.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
namespace Overblog\GraphQLBundle\Tests\Functional\App\Resolver;

use GraphQL\Type\Definition\ResolveInfo;
use Overblog\GraphQLBundle\Resolver\TypeResolver;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerAwareTrait;

Expand Down
14 changes: 7 additions & 7 deletions tests/Functional/App/config/access/mapping/access.types.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ RootQuery:
fields:
user:
type: User
resolve: '@=resolver("query")'
resolve: '@=query("query")'
youShallNotSeeThisUnauthenticated:
type: SecureField
access: '@=isFullyAuthenticated()'
Expand All @@ -18,7 +18,7 @@ Mutation:
user:
access: '@=private_service.hasAccess()'
type: Human
resolve: '@=resolver("query")'
resolve: '@=query("query")'

Human:
type: interface
Expand All @@ -38,7 +38,7 @@ User:
resolve: ['ROLE_USER']
isEnabled:
# access as a promise
access: "@=resolver('promise', [args.hasAccess])"
access: "@=query('promise', args.hasAccess)"
args:
hasAccess: {type: Boolean!}
type: Boolean
Expand All @@ -48,7 +48,7 @@ User:
access: "@=object == 1"
type: friendConnection
argsBuilder: "Relay::Connection"
resolve: '@=resolver("friends", [value, args])'
resolve: '@=query("friends", value, args)'
friendsAsArray:
# TODO(mcg-web): replace by strict equality after fix compilation expression language bug in sf 4.0
access: "@=object != 2"
Expand All @@ -75,15 +75,15 @@ friendConnection:
type: relay-connection
config:
nodeType: User
resolveNode: '@=resolver("node", [value])'
resolveNode: '@=query("node", value)'
edgeFields:
friendshipTime:
type: String
resolve: "Yesterday"
connectionFields:
totalCount:
type: Int
resolve: '@=resolver("connection")'
resolve: '@=query("connection")'

#Mutation
RootMutation:
Expand All @@ -96,7 +96,7 @@ RootMutation:
builderConfig:
inputType: simpleMutationWithThunkFieldsInput
payloadType: simpleMutationWithThunkFieldsPayload
mutateAndGetPayload: "@=mutation('simple_mutation_with_thunk_fields', [value])"
mutateAndGetPayload: "@=mutation('simple_mutation_with_thunk_fields', value)"

simpleMutationWithThunkFieldsInput:
type: relay-mutation-input
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Query:
fields:
user:
type: User
resolve: '@=resolver("query")'
resolve: '@=query("query")'

User:
type: object
Expand All @@ -16,32 +16,32 @@ User:
friends:
type: friendConnection
argsBuilder: "Relay::Connection"
resolve: '@=resolver("friends", [value, args])'
resolve: '@=query("friends", value, args)'
friendsForward:
type: userConnection
argsBuilder: "Relay::ForwardConnection"
resolve: '@=resolver("friends", [value, args])'
resolve: '@=query("friends", value, args)'
friendsBackward:
type: userConnection
argsBuilder: "Relay::BackwardConnection"
resolve: '@=resolver("friends", [value, args])'
resolve: '@=query("friends", value, args)'

friendConnection:
type: relay-connection
config:
nodeType: User
resolveNode: '@=resolver("node", [value])'
resolveNode: '@=query("node", value)'
edgeFields:
friendshipTime:
type: String
resolve: "Yesterday"
connectionFields:
totalCount:
type: Int
resolve: '@=resolver("connection")'
resolve: '@=query("connection")'

userConnection:
type: relay-connection
config:
nodeType: User
resolveNode: '@=resolver("node", [value])'
resolveNode: '@=query("node", value)'
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ Query:
fields:
test:
type: "Boolean"
resolve: "@=resolver('example_exception')"
resolve: "@=query('example_exception')"

Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ RootQuery:
fields:
failRequire:
type: String!
resolve: '@=resolver("example_exception")'
resolve: '@=query("example_exception")'
failOptional:
type: String
resolve: '@=resolver("example_exception")'
resolve: '@=query("example_exception")'
success:
type: String
resolve: 'foo'
2 changes: 1 addition & 1 deletion tests/Functional/App/config/node/mapping/node_type.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Node:
type: relay-node
config:
resolveType: '@=typeResolver.resolve(resolver("node_resolver::typeResolver", [value]))'
resolveType: '@=typeResolver.resolve(query("node_resolver::typeResolver", value))'
Loading