@@ -66,11 +66,10 @@ public GraphQLHttpClient(GraphQLHttpClientOptions options, HttpClient httpClient
6666
6767 /// <inheritdoc />
6868 public async Task < GraphQLResponse < TResponse > > SendQueryAsync < TResponse > ( GraphQLRequest request , CancellationToken cancellationToken = default ) {
69- if ( Options . UseWebSocketForQueriesAndMutations )
69+ if ( Options . UseWebSocketForQueriesAndMutations )
7070 return await this . graphQlHttpWebSocket . SendRequest < TResponse > ( request , cancellationToken ) ;
71-
72- var response = await this . SendHttpPostRequestAsync < TResponse > ( request , cancellationToken ) ;
73- return response . Response ;
71+
72+ return await this . SendHttpPostRequestAsync < TResponse > ( request , cancellationToken ) ;
7473 }
7574
7675 /// <inheritdoc />
@@ -116,47 +115,7 @@ public IObservable<GraphQLResponse<TResponse>> CreateSubscriptionStream<TRespons
116115 /// </summary>
117116 /// <returns></returns>
118117 public Task InitializeWebsocketConnection ( ) => graphQlHttpWebSocket . InitializeWebSocket ( ) ;
119-
120- /// <summary>
121- /// Sends a query to the GraphQL server and deserializes the response. Provides access to the HTTP response headers. This method will never utilize the websocket connection!
122- /// </summary>
123- /// <typeparam name="TResponse"></typeparam>
124- /// <param name="request"></param>
125- /// <param name="cancellationToken"></param>
126- /// <returns></returns>
127- public Task < GraphQLHttpResponse < TResponse > > SendQueryHttpAsync < TResponse > ( GraphQLRequest request , CancellationToken cancellationToken = default ) {
128- return this . SendHttpPostRequestAsync < TResponse > ( request , cancellationToken ) ;
129- }
130- /// <inheritdoc cref="SendQueryHttpAsync{TResponse}(GraphQL.GraphQLRequest,System.Threading.CancellationToken)"/>
131- public Task < GraphQLHttpResponse < TResponse > > SendQueryHttpAsync < TResponse > ( GraphQLRequest request ,
132- Func < TResponse > defineResponseType , CancellationToken cancellationToken = default )
133- => SendQueryHttpAsync < TResponse > ( request , cancellationToken ) ;
134- /// <inheritdoc cref="SendQueryHttpAsync{TResponse}(GraphQL.GraphQLRequest,System.Threading.CancellationToken)"/>
135- public Task < GraphQLHttpResponse < TResponse > > SendQueryHttpAsync < TResponse > ( string query , object ? variables = null ,
136- string ? operationName = null , Func < TResponse > defineResponseType = null , CancellationToken cancellationToken = default ) {
137- return SendQueryHttpAsync < TResponse > ( new GraphQLRequest ( query , variables , operationName ) , cancellationToken : cancellationToken ) ;
138- }
139-
140- /// <summary>
141- /// Sends a mutation to the GraphQL server and deserializes the response. Provides access to the HTTP response headers. This method will never utilize the websocket connection!
142- /// </summary>
143- /// <typeparam name="TResponse"></typeparam>
144- /// <param name="request"></param>
145- /// <param name="cancellationToken"></param>
146- /// <returns></returns>
147- public Task < GraphQLHttpResponse < TResponse > > SendMutationHttpAsync < TResponse > ( GraphQLRequest request ,
148- CancellationToken cancellationToken = default )
149- => SendQueryHttpAsync < TResponse > ( request , cancellationToken ) ;
150- /// <inheritdoc cref="SendMutationHttpAsync{TResponse}(GraphQL.GraphQLRequest,System.Threading.CancellationToken)"/>
151- public Task < GraphQLHttpResponse < TResponse > > SendMutationHttpAsync < TResponse > ( GraphQLRequest request ,
152- Func < TResponse > defineResponseType , CancellationToken cancellationToken = default )
153- => SendQueryHttpAsync < TResponse > ( request , cancellationToken ) ;
154- /// <inheritdoc cref="SendMutationHttpAsync{TResponse}(GraphQL.GraphQLRequest,System.Threading.CancellationToken)"/>
155- public Task < GraphQLHttpResponse < TResponse > > SendMutationHttpAsync < TResponse > ( string query , object ? variables = null ,
156- string ? operationName = null , Func < TResponse > defineResponseType = null , CancellationToken cancellationToken = default ) {
157- return SendQueryHttpAsync < TResponse > ( new GraphQLRequest ( query , variables , operationName ) , cancellationToken : cancellationToken ) ;
158- }
159-
118+
160119 #region Private Methods
161120
162121 private async Task < GraphQLHttpResponse < TResponse > > SendHttpPostRequestAsync < TResponse > ( GraphQLRequest request , CancellationToken cancellationToken = default ) {
@@ -166,15 +125,10 @@ private async Task<GraphQLHttpResponse<TResponse>> SendHttpPostRequestAsync<TRes
166125 if ( ! httpResponseMessage . IsSuccessStatusCode ) {
167126 throw new GraphQLHttpException ( httpResponseMessage ) ;
168127 }
169-
170- var response = new GraphQLHttpResponse < TResponse > {
171- ResponseHeaders = httpResponseMessage . Headers ,
172- StatusCode = httpResponseMessage . StatusCode
173- } ;
174128
175129 var bodyStream = await httpResponseMessage . Content . ReadAsStreamAsync ( ) ;
176- response . Response = await JsonSerializer . DeserializeFromUtf8StreamAsync < TResponse > ( bodyStream , cancellationToken ) ;
177- return response ;
130+ var response = await JsonSerializer . DeserializeFromUtf8StreamAsync < TResponse > ( bodyStream , cancellationToken ) ;
131+ return response . ToGraphQLHttpResponse ( httpResponseMessage . Headers , httpResponseMessage . StatusCode ) ;
178132 }
179133
180134 private HttpRequestMessage GenerateHttpRequestMessage ( GraphQLRequest request ) {
0 commit comments