From 1e8156a6aaf27ede27ebb80a6d68359b2f1612f0 Mon Sep 17 00:00:00 2001 From: Charles Ritchie Date: Wed, 10 Feb 2021 10:07:05 +1300 Subject: [PATCH] fix: add support for decoration via RequestHandlerMiddlewareAdapter. #36 --- src/Controller.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Controller.php b/src/Controller.php index 00ebb1f..8e69013 100644 --- a/src/Controller.php +++ b/src/Controller.php @@ -6,6 +6,7 @@ use SilverStripe\Control\HTTPRequest; use SilverStripe\GraphQL\Controller as GraphQLController; use SilverStripe\Control\Director; +use SilverStripe\Control\Middleware\RequestHandlerMiddlewareAdapter; use SilverStripe\Core\Injector\Injector; use SilverStripe\Core\Injector\InjectorNotFoundException; use SilverStripe\Core\Path; @@ -101,6 +102,12 @@ protected function findAvailableRoutes($schemas = []): array try { $routeController = Injector::inst()->get($routeClass); + + // Add support for decoration via RequestHandlerMiddlewareAdapter + if ($routeController instanceof RequestHandlerMiddlewareAdapter) { + $routeController = $routeController->getRequestHandler(); + } + if ($routeController instanceof GraphQLController) { $schemaKey = class_exists(Schema::class) ? $routeController->getSchema()->getSchemaKey()