@@ -20,9 +20,11 @@ import com.apollographql.apollo.api.ApolloResponse
2020import com.apollographql.apollo.api.Error
2121import com.apollographql.apollo.api.Operation
2222import com.apollographql.apollo.api.composeJsonRequest
23+ import com.apollographql.apollo.api.http.HttpHeader
2324import com.apollographql.apollo.api.json.buildJsonString
2425import com.apollographql.apollo.api.json.jsonReader
2526import com.apollographql.apollo.api.parseResponse
27+ import com.apollographql.apollo.exception.ApolloHttpException
2628import com.expediagroup.sdk.core.http.CommonMediaTypes
2729import com.expediagroup.sdk.core.http.Method
2830import com.expediagroup.sdk.core.http.Request
@@ -52,6 +54,18 @@ fun <D : Operation.Data> Operation<D>.toSDKRequest(url: String): Request {
5254}
5355
5456fun <D : Operation .Data > Response.toApolloResponse (operation : Operation <D >): ApolloResponse <D > {
57+ if (status.code != 200 ) {
58+ return ApolloResponse .Builder (operation, request.id)
59+ .exception(
60+ ApolloHttpException (
61+ statusCode = status.code,
62+ headers = headers.entries().map { HttpHeader (it.key, it.value.toString()) },
63+ message = " Received non 200 response from the GraphQL server" ,
64+ body = this .body?.source()?.buffer
65+ )
66+ ).build()
67+ }
68+
5569 val apolloResponse =
5670 this .body?.let {
5771 val jsonReader = it.source().buffer.jsonReader()
0 commit comments