From 81e277263b58a29671f22fbccd1d50bf847e703d Mon Sep 17 00:00:00 2001 From: Sam Stenvall Date: Wed, 7 Nov 2018 16:57:40 +0200 Subject: [PATCH] Don't validate the schema again when validating the query against it Fixes #324 --- src/Schema/Validation/SchemaValidator.php | 17 ----------------- .../Validation/SchemaValidatorInterface.php | 5 ----- src/Validation/ValidationProvider.php | 5 +---- src/Validation/Validator.php | 17 ----------------- 4 files changed, 1 insertion(+), 43 deletions(-) diff --git a/src/Schema/Validation/SchemaValidator.php b/src/Schema/Validation/SchemaValidator.php index 9b44ad84..be0e6367 100644 --- a/src/Schema/Validation/SchemaValidator.php +++ b/src/Schema/Validation/SchemaValidator.php @@ -27,23 +27,6 @@ public function validate(Schema $schema, ?array $rules = null): array return $context->getErrors(); } - /** - * @param Schema $schema - * @throws SchemaValidationException - */ - public function assertValid(Schema $schema): void - { - $errors = $this->validate($schema); - - if (!empty($errors)) { - $message = \implode("\n", \array_map(function (SchemaValidationException $error) { - return $error->getMessage(); - }, $errors)); - - throw new SchemaValidationException($message); - } - } - /** * @inheritdoc */ diff --git a/src/Schema/Validation/SchemaValidatorInterface.php b/src/Schema/Validation/SchemaValidatorInterface.php index 2a06bdbd..fbf8a570 100644 --- a/src/Schema/Validation/SchemaValidatorInterface.php +++ b/src/Schema/Validation/SchemaValidatorInterface.php @@ -14,11 +14,6 @@ interface SchemaValidatorInterface */ public function validate(Schema $schema, ?array $rules = null): array; - /** - * @param Schema $schema - */ - public function assertValid(Schema $schema): void; - /** * @param Schema $schema * @return ValidationContextInterface diff --git a/src/Validation/ValidationProvider.php b/src/Validation/ValidationProvider.php index 4a65707f..6bfa4fec 100644 --- a/src/Validation/ValidationProvider.php +++ b/src/Validation/ValidationProvider.php @@ -2,7 +2,6 @@ namespace Digia\GraphQL\Validation; -use Digia\GraphQL\Schema\Validation\SchemaValidatorInterface; use League\Container\ServiceProvider\AbstractServiceProvider; class ValidationProvider extends AbstractServiceProvider @@ -19,8 +18,6 @@ class ValidationProvider extends AbstractServiceProvider */ public function register() { - $this->container - ->share(ValidatorInterface::class, Validator::class) - ->addArgument(SchemaValidatorInterface::class); + $this->container->share(ValidatorInterface::class, Validator::class); } } diff --git a/src/Validation/Validator.php b/src/Validation/Validator.php index 35550931..cb64bd9a 100644 --- a/src/Validation/Validator.php +++ b/src/Validation/Validator.php @@ -7,27 +7,12 @@ use Digia\GraphQL\Language\Visitor\TypeInfoVisitor; use Digia\GraphQL\Language\Visitor\VisitorInfo; use Digia\GraphQL\Schema\Schema; -use Digia\GraphQL\Schema\Validation\SchemaValidatorInterface; use Digia\GraphQL\Util\TypeInfo; use Digia\GraphQL\Validation\Rule\RuleInterface; use Digia\GraphQL\Validation\Rule\SupportedRules; class Validator implements ValidatorInterface { - /** - * @var SchemaValidatorInterface - */ - protected $schemaValidator; - - /** - * Validator constructor. - * @param SchemaValidatorInterface $schemaValidator - */ - public function __construct(SchemaValidatorInterface $schemaValidator) - { - $this->schemaValidator = $schemaValidator; - } - /** * @inheritdoc */ @@ -37,8 +22,6 @@ public function validate( ?array $rules = null, ?TypeInfo $typeInfo = null ): array { - $this->schemaValidator->assertValid($schema); - $typeInfo = $typeInfo ?? new TypeInfo($schema); $rules = $rules ?? SupportedRules::build();