From 1934f9e388df0fc47291a2250774d64942bbb572 Mon Sep 17 00:00:00 2001 From: Thorsten Essig Date: Mon, 5 Dec 2022 15:17:49 +0100 Subject: [PATCH 1/2] feat(graphql): allow to register additional OperationMiddlewares --- module.go | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/module.go b/module.go index 3de8eb6..785474d 100644 --- a/module.go +++ b/module.go @@ -40,17 +40,19 @@ type routes struct { origins flamingoConfig.Slice introspectionEnabled bool uploadMaxSize int64 + operationMiddlewares []graphql.OperationMiddleware } // Inject executable schema func (r *routes) Inject( reverseRouter web.ReverseRouter, config *struct { - Exec graphql.ExecutableSchema `inject:",optional"` - Origins flamingoConfig.Slice `inject:"config:graphql.cors.origins"` - IntrospectionEnabled bool `inject:"config:graphql.introspectionEnabled,optional"` - UploadMaxSize int64 `inject:"config:graphql.multipartForm.uploadMaxSize,optional"` - }, + Exec graphql.ExecutableSchema `inject:",optional"` + OperationMiddlewares []graphql.OperationMiddleware `inject:",optional"` + Origins flamingoConfig.Slice `inject:"config:graphql.cors.origins"` + IntrospectionEnabled bool `inject:"config:graphql.introspectionEnabled,optional"` + UploadMaxSize int64 `inject:"config:graphql.multipartForm.uploadMaxSize,optional"` +}, ) { r.reverseRouter = reverseRouter if config != nil { @@ -58,6 +60,7 @@ func (r *routes) Inject( r.origins = config.Origins r.introspectionEnabled = config.IntrospectionEnabled r.uploadMaxSize = config.UploadMaxSize + r.operationMiddlewares = config.OperationMiddlewares } } @@ -101,6 +104,10 @@ func (r *routes) Routes(registry *web.RouterRegistry) { return next(ctx) }) + for _, middleware := range r.operationMiddlewares { + gqlHandler.AroundOperations(middleware) + } + registry.MustRoute("/graphql", "graphql") registry.HandleOptions("graphql", web.WrapHTTPHandler(corsHandler.preflightHandler())) registry.HandleAny("graphql", wrapGqlHandler(corsHandler.gqlMiddleware(gqlHandler))) From f0d74b2101725fe3b1c31f13d788a5abd961085b Mon Sep 17 00:00:00 2001 From: Thorsten Essig Date: Mon, 5 Dec 2022 15:34:47 +0100 Subject: [PATCH 2/2] feat(graphql): gofmt --- module.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/module.go b/module.go index 785474d..367ec7d 100644 --- a/module.go +++ b/module.go @@ -47,12 +47,12 @@ type routes struct { func (r *routes) Inject( reverseRouter web.ReverseRouter, config *struct { - Exec graphql.ExecutableSchema `inject:",optional"` - OperationMiddlewares []graphql.OperationMiddleware `inject:",optional"` - Origins flamingoConfig.Slice `inject:"config:graphql.cors.origins"` - IntrospectionEnabled bool `inject:"config:graphql.introspectionEnabled,optional"` - UploadMaxSize int64 `inject:"config:graphql.multipartForm.uploadMaxSize,optional"` -}, + Exec graphql.ExecutableSchema `inject:",optional"` + OperationMiddlewares []graphql.OperationMiddleware `inject:",optional"` + Origins flamingoConfig.Slice `inject:"config:graphql.cors.origins"` + IntrospectionEnabled bool `inject:"config:graphql.introspectionEnabled,optional"` + UploadMaxSize int64 `inject:"config:graphql.multipartForm.uploadMaxSize,optional"` + }, ) { r.reverseRouter = reverseRouter if config != nil {