override fun intercept()

in graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/webflux/DgsWebFluxGraphQLInterceptor.kt [34:65]


    override fun intercept(
        request: WebGraphQlRequest,
        chain: WebGraphQlInterceptor.Chain,
    ): Mono<WebGraphQlResponse> =
        Mono
            .deferContextual { ctx ->
                val webExchange = ServerWebExchangeContextFilter.getExchange(ctx).get()
                val serverRequest = ServerRequest.create(webExchange, emptyList())
                dgsReactiveGraphQLContextBuilder.build(
                    DgsReactiveRequestData(
                        request.extensions,
                        request.headers,
                        serverRequest,
                    ),
                )
            }.flatMap { dgsContext ->
                var dataLoaderRegistry: DataLoaderRegistry? = null
                request.configureExecutionInput { e, builder ->
                    dataLoaderRegistry = dgsDataLoaderProvider.buildRegistryWithContextSupplier { e.graphQLContext }
                    builder
                        .context(dgsContext)
                        .graphQLContext(dgsContext)
                        .dataLoaderRegistry(dataLoaderRegistry)
                        .build()
                }

                chain.next(request).doFinally {
                    if (dataLoaderRegistry is AutoCloseable) {
                        (dataLoaderRegistry as AutoCloseable).close()
                    }
                }
            }