From 96111666b542e2804162cffa2a0e3d12c82b8221 Mon Sep 17 00:00:00 2001 From: Artem Dmitriiev Date: Wed, 11 Jan 2023 17:59:08 +0100 Subject: [PATCH 1/3] Make sure that plugin doesn't process non entity routes --- src/Plugin/GraphQL/DataProducer/Routing/RouteEntity.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Plugin/GraphQL/DataProducer/Routing/RouteEntity.php b/src/Plugin/GraphQL/DataProducer/Routing/RouteEntity.php index 10ea4e607..dd95faa27 100644 --- a/src/Plugin/GraphQL/DataProducer/Routing/RouteEntity.php +++ b/src/Plugin/GraphQL/DataProducer/Routing/RouteEntity.php @@ -107,7 +107,15 @@ public function __construct( */ public function resolve($url, ?string $language, FieldContext $context): ?Deferred { if ($url instanceof Url) { + // Check that this route is actually an entity route. + if (strpos($url->getRouteName(), 'entity.') === FALSE) { + return NULL; + } [, $type] = explode('.', $url->getRouteName()); + // Make sure that entity type is not empty. + if (empty($type)) { + return NULL; + } $parameters = $url->getRouteParameters(); $id = $parameters[$type]; $resolver = $this->entityBuffer->add($type, $id); From b79bcfea29a24fef656ce29df7c629f3f28ec9d6 Mon Sep 17 00:00:00 2001 From: Artem Dmitriiev Date: Tue, 9 Apr 2024 09:12:36 +0200 Subject: [PATCH 2/3] Resolve review comments --- .../GraphQL/DataProducer/Routing/RouteEntity.php | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/Plugin/GraphQL/DataProducer/Routing/RouteEntity.php b/src/Plugin/GraphQL/DataProducer/Routing/RouteEntity.php index dd95faa27..334c8a285 100644 --- a/src/Plugin/GraphQL/DataProducer/Routing/RouteEntity.php +++ b/src/Plugin/GraphQL/DataProducer/Routing/RouteEntity.php @@ -106,14 +106,11 @@ public function __construct( * The GraphQL field context. */ public function resolve($url, ?string $language, FieldContext $context): ?Deferred { - if ($url instanceof Url) { - // Check that this route is actually an entity route. - if (strpos($url->getRouteName(), 'entity.') === FALSE) { - return NULL; - } - [, $type] = explode('.', $url->getRouteName()); - // Make sure that entity type is not empty. - if (empty($type)) { + if ($url instanceof Url && $url->isRouted()) { + [$route_type, $type] = explode('.', $url->getRouteName()); + // Check that this route is actually an entity route and make sure that + // entity type is not empty. + if ($route_type !== 'entity' || empty($type)) { return NULL; } $parameters = $url->getRouteParameters(); From ed6c8e6cac9d73204dd6c16e49eead1b58556292 Mon Sep 17 00:00:00 2001 From: Artem Dmitriiev Date: Tue, 9 Apr 2024 09:18:40 +0200 Subject: [PATCH 3/3] Fix coding standards --- src/Plugin/GraphQL/DataProducer/Routing/RouteEntity.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Plugin/GraphQL/DataProducer/Routing/RouteEntity.php b/src/Plugin/GraphQL/DataProducer/Routing/RouteEntity.php index 334c8a285..9d4ff5d22 100644 --- a/src/Plugin/GraphQL/DataProducer/Routing/RouteEntity.php +++ b/src/Plugin/GraphQL/DataProducer/Routing/RouteEntity.php @@ -108,7 +108,7 @@ public function __construct( public function resolve($url, ?string $language, FieldContext $context): ?Deferred { if ($url instanceof Url && $url->isRouted()) { [$route_type, $type] = explode('.', $url->getRouteName()); - // Check that this route is actually an entity route and make sure that + // Check that this route is actually an entity route and make sure that // entity type is not empty. if ($route_type !== 'entity' || empty($type)) { return NULL;