Skip to content

Commit

Permalink
fixed webflux
Browse files Browse the repository at this point in the history
  • Loading branch information
antholeole committed Oct 19, 2022
1 parent b05ffea commit 6666853
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 5 deletions.
Expand Up @@ -20,6 +20,7 @@ import com.fasterxml.jackson.core.JsonParseException
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.databind.exc.MismatchedInputException
import com.fasterxml.jackson.module.kotlin.readValue
import com.netflix.graphql.dgs.internal.DgsExecutionResult
import com.netflix.graphql.dgs.reactive.DgsReactiveQueryExecutor
import graphql.ExecutionResult
import org.slf4j.Logger
Expand Down Expand Up @@ -74,9 +75,15 @@ class DefaultDgsWebfluxHttpHandler(
}

return executionResult.flatMap { result ->
val dgsExecutionResult = when (result) {
is DgsExecutionResult -> result
else -> DgsExecutionResult(result)
}

ServerResponse
.ok()
.bodyValue(result.toSpecification())
.status(dgsExecutionResult.status)
.headers { it.addAll(dgsExecutionResult.headers) }
.bodyValue(dgsExecutionResult.toSpecification())
}.onErrorResume { ex ->
when (ex) {
is JsonParseException ->
Expand Down
Expand Up @@ -77,7 +77,7 @@ class MalformedQueryContentTest {
.bodyValue("{ }")
.exchange()
.expectStatus()
.isOk
.isBadRequest
.expectBody()
.json(
"""
Expand Down
Expand Up @@ -120,9 +120,10 @@ class DgsExecutionResult @JvmOverloads constructor(
// overridden for compatibility with https://github.com/Netflix/dgs-framework/pull/1261.
override fun toSpecification(): MutableMap<String, Any> {
val spec = executionResult.toSpecification()
val extensions = spec["extensions"] as Map<*, *>

if (extensions.containsKey(DGS_RESPONSE_HEADERS_KEY)) {
if (spec["extensions"] != null && extensions.containsKey(DGS_RESPONSE_HEADERS_KEY)) {
val extensions = spec["extensions"] as Map<*, *>

if (extensions.size != 1) {
spec["extensions"] = extensions.minus(DGS_RESPONSE_HEADERS_KEY)
} else {
Expand Down

0 comments on commit 6666853

Please sign in to comment.