@@ -76,10 +76,8 @@ internal ElasticsearchClient(HttpTransport<IElasticsearchClientSettings> transpo
76
76
77
77
public IElasticsearchClientSettings ElasticsearchClientSettings => _transport . Settings ;
78
78
public Inferrer Infer => _transport . Settings . Inferrer ;
79
-
80
79
public Serializer RequestResponseSerializer => _transport . Settings . RequestResponseSerializer ;
81
80
public Serializer SourceSerializer => _transport . Settings . SourceSerializer ;
82
-
83
81
public HttpTransport Transport => _transport ;
84
82
85
83
private ProductCheckStatus _productCheckStatus ;
@@ -93,83 +91,15 @@ private enum ProductCheckStatus
93
91
94
92
private partial void SetupNamespaces ( ) ;
95
93
96
- internal TResponse DoRequest < TRequest , TResponse , TRequestParameters > (
97
- TRequest request ,
98
- TRequestParameters ? parameters ,
99
- Action < IRequestConfiguration > ? forceConfiguration = null )
94
+ internal TResponse DoRequest < TRequest , TResponse , TRequestParameters > ( TRequest request )
100
95
where TRequest : Request < TRequestParameters >
101
96
where TResponse : ElasticsearchResponse , new ( )
102
- where TRequestParameters : RequestParameters , new ( )
103
- {
104
- if ( _productCheckStatus == ProductCheckStatus . Failed )
105
- throw new UnsupportedProductException ( UnsupportedProductException . InvalidProductError ) ;
106
-
107
- var requestModified = false ;
108
- var hadRequestConfig = false ;
109
- HeadersList ? originalHeaders = null ;
110
-
111
- // If we have not yet checked the product name, add the product header to the list of headers to parse.
112
- if ( _productCheckStatus == ProductCheckStatus . NotChecked )
113
- {
114
- requestModified = true ;
115
- if ( request . RequestParameters . RequestConfiguration is null )
116
- {
117
- request . RequestParameters . RequestConfiguration = new RequestConfiguration ( ) ;
118
- }
119
- else
120
- {
121
- originalHeaders = request . RequestParameters . RequestConfiguration . ResponseHeadersToParse ;
122
- hadRequestConfig = true ;
123
- }
124
-
125
- if ( request . RequestParameters . RequestConfiguration . ResponseHeadersToParse . Count == 0 )
126
- {
127
- request . RequestParameters . RequestConfiguration . ResponseHeadersToParse = new HeadersList ( "x-elastic-product" ) ;
128
- }
129
- else
130
- {
131
- request . RequestParameters . RequestConfiguration . ResponseHeadersToParse = new HeadersList ( request . RequestParameters . RequestConfiguration . ResponseHeadersToParse , "x-elastic-product" ) ;
132
- }
133
- }
134
-
135
- var ( resolvedUrl , urlTemplate , postData ) = PrepareRequest < TRequest , TRequestParameters > ( request , forceConfiguration ) ;
136
-
137
- TResponse response ;
138
-
139
- using ( var activity = _activitySource . StartActivity ( $ "Elasticsearch: { request . HttpMethod } { urlTemplate } ", ActivityKind . Client ) )
140
- {
141
- activity ? . SetTag ( "db.system" , "elasticsearch" ) ;
142
- activity ? . SetCustomProperty ( "elastic.transport.client" , true ) ;
143
-
144
- response = _transport . Request < TResponse > ( request . HttpMethod , resolvedUrl , postData , request . RequestParameters ) ;
145
-
146
- if ( response . ApiCallDetails . RequestBodyInBytes is not null )
147
- activity ? . SetTag ( "db.statement" , System . Text . Encoding . UTF8 . GetString ( response . ApiCallDetails . RequestBodyInBytes ) ) ;
148
- }
149
-
150
- PostRequestProductCheck < TRequest , TResponse > ( request , response ) ;
151
-
152
- if ( _productCheckStatus == ProductCheckStatus . Failed )
153
- throw new UnsupportedProductException ( UnsupportedProductException . InvalidProductError ) ;
154
-
155
- if ( requestModified )
156
- {
157
- if ( ! hadRequestConfig )
158
- {
159
- request . RequestParameters . RequestConfiguration = null ;
160
- }
161
- else if ( originalHeaders . HasValue && originalHeaders . Value . Count > 0 )
162
- {
163
- request . RequestParameters . RequestConfiguration . ResponseHeadersToParse = originalHeaders . Value ;
164
- }
165
- }
166
-
167
- return response ;
168
- }
97
+ where TRequestParameters : RequestParameters , new ( ) =>
98
+ DoRequest < TRequest , TResponse , TRequestParameters > ( request , null ) ;
169
99
170
100
internal TResponse DoRequest < TRequest , TResponse , TRequestParameters > (
171
101
TRequest request ,
172
- Action < IRequestConfiguration > ? forceConfiguration = null )
102
+ Action < IRequestConfiguration > ? forceConfiguration )
173
103
where TRequest : Request < TRequestParameters >
174
104
where TResponse : ElasticsearchResponse , new ( )
175
105
where TRequestParameters : RequestParameters , new ( )
@@ -240,175 +170,17 @@ internal TResponse DoRequest<TRequest, TResponse, TRequestParameters>(
240
170
return response ;
241
171
}
242
172
243
- internal Task < TResponse > DoRequestAsync < TRequest , TResponse , TRequestParameters > (
244
- TRequest request ,
245
- RequestParameters ? parameters ,
246
- CancellationToken cancellationToken = default )
247
- where TRequest : Request < TRequestParameters >
248
- where TResponse : ElasticsearchResponse , new ( )
249
- where TRequestParameters : RequestParameters , new ( )
250
- {
251
- if ( _productCheckStatus == ProductCheckStatus . Failed )
252
- throw new UnsupportedProductException ( UnsupportedProductException . InvalidProductError ) ;
253
-
254
- var requestModified = false ;
255
- var hadRequestConfig = false ;
256
- HeadersList ? originalHeaders = null ;
257
-
258
- // If we have not yet checked the product name, add the product header to the list of headers to parse.
259
- if ( _productCheckStatus == ProductCheckStatus . NotChecked )
260
- {
261
- requestModified = true ;
262
-
263
- if ( request . RequestParameters . RequestConfiguration is null )
264
- {
265
- request . RequestParameters . RequestConfiguration = new RequestConfiguration ( ) ;
266
- }
267
- else
268
- {
269
- originalHeaders = request . RequestParameters . RequestConfiguration . ResponseHeadersToParse ;
270
- hadRequestConfig = true ;
271
- }
272
-
273
- if ( request . RequestParameters . RequestConfiguration . ResponseHeadersToParse . Count == 0 )
274
- {
275
- request . RequestParameters . RequestConfiguration . ResponseHeadersToParse = new HeadersList ( "x-elastic-product" ) ;
276
- }
277
- else
278
- {
279
- request . RequestParameters . RequestConfiguration . ResponseHeadersToParse = new HeadersList ( request . RequestParameters . RequestConfiguration . ResponseHeadersToParse , "x-elastic-product" ) ;
280
- }
281
- }
282
-
283
- var ( resolvedUrl , urlTemplate , postData ) = PrepareRequest < TRequest , TRequestParameters > ( request , null ) ;
284
-
285
- if ( _productCheckStatus == ProductCheckStatus . Succeeded && ! requestModified && ! _activitySource . HasListeners ( ) )
286
- return _transport . RequestAsync < TResponse > ( request . HttpMethod , resolvedUrl , postData , parameters , cancellationToken ) ;
287
-
288
- return SendRequest ( request , parameters , resolvedUrl , postData , hadRequestConfig , originalHeaders ) ;
289
-
290
- async Task < TResponse > SendRequest ( TRequest request , RequestParameters ? parameters , string url , PostData postData , bool hadRequestConfig , HeadersList ? originalHeaders )
291
- {
292
- TResponse response ;
293
-
294
- using ( var activity = _activitySource . StartActivity ( $ "Elasticsearch: { request . HttpMethod } { urlTemplate } ", ActivityKind . Client ) )
295
- {
296
- activity ? . AddTag ( "db.system" , "elasticsearch" ) ;
297
- activity ? . SetCustomProperty ( "elastic.transport.client" , true ) ;
298
-
299
- response = await _transport . RequestAsync < TResponse > ( request . HttpMethod , url , postData , parameters ) . ConfigureAwait ( false ) ;
300
-
301
- if ( response . ApiCallDetails . RequestBodyInBytes is not null )
302
- activity ? . AddTag ( "db.statement" , System . Text . Encoding . UTF8 . GetString ( response . ApiCallDetails . RequestBodyInBytes ) ) ;
303
- }
304
-
305
- PostRequestProductCheck < TRequest , TResponse > ( request , response ) ;
306
-
307
- if ( _productCheckStatus == ProductCheckStatus . Failed )
308
- throw new UnsupportedProductException ( UnsupportedProductException . InvalidProductError ) ;
309
-
310
- if ( request . RequestParameters . RequestConfiguration is not null )
311
- {
312
- if ( ! hadRequestConfig )
313
- {
314
- request . RequestParameters . RequestConfiguration = null ;
315
- }
316
- else if ( originalHeaders . HasValue && originalHeaders . Value . Count > 0 )
317
- {
318
- request . RequestParameters . RequestConfiguration . ResponseHeadersToParse = originalHeaders . Value ;
319
- }
320
- }
321
-
322
- return response ;
323
- }
324
- }
325
-
326
173
internal Task < TResponse > DoRequestAsync < TRequest , TResponse , TRequestParameters > (
327
174
TRequest request ,
328
175
CancellationToken cancellationToken = default )
329
176
where TRequest : Request < TRequestParameters >
330
177
where TResponse : ElasticsearchResponse , new ( )
331
178
where TRequestParameters : RequestParameters , new ( )
332
- {
333
- if ( _productCheckStatus == ProductCheckStatus . Failed )
334
- throw new UnsupportedProductException ( UnsupportedProductException . InvalidProductError ) ;
335
-
336
- var requestModified = false ;
337
- var hadRequestConfig = false ;
338
- HeadersList ? originalHeaders = null ;
339
-
340
- // If we have not yet checked the product name, add the product header to the list of headers to parse.
341
- if ( _productCheckStatus == ProductCheckStatus . NotChecked )
342
- {
343
- requestModified = true ;
344
-
345
- if ( request . RequestParameters . RequestConfiguration is null )
346
- {
347
- request . RequestParameters . RequestConfiguration = new RequestConfiguration ( ) ;
348
- }
349
- else
350
- {
351
- originalHeaders = request . RequestParameters . RequestConfiguration . ResponseHeadersToParse ;
352
- hadRequestConfig = true ;
353
- }
354
-
355
- if ( request . RequestParameters . RequestConfiguration . ResponseHeadersToParse . Count == 0 )
356
- {
357
- request . RequestParameters . RequestConfiguration . ResponseHeadersToParse = new HeadersList ( "x-elastic-product" ) ;
358
- }
359
- else
360
- {
361
- request . RequestParameters . RequestConfiguration . ResponseHeadersToParse = new HeadersList ( request . RequestParameters . RequestConfiguration . ResponseHeadersToParse , "x-elastic-product" ) ;
362
- }
363
- }
364
-
365
- var ( resolvedUrl , urlTemplate , postData ) = PrepareRequest < TRequest , TRequestParameters > ( request , null ) ;
366
-
367
- if ( _productCheckStatus == ProductCheckStatus . Succeeded && ! requestModified && ! _activitySource . HasListeners ( ) )
368
- return _transport . RequestAsync < TResponse > ( request . HttpMethod , resolvedUrl , postData , request . RequestParameters , cancellationToken ) ;
369
-
370
- return SendRequest ( request , request . RequestParameters , resolvedUrl , postData , hadRequestConfig , originalHeaders ) ;
371
-
372
- async Task < TResponse > SendRequest ( TRequest request , RequestParameters ? parameters , string url , PostData postData , bool hadRequestConfig , HeadersList ? originalHeaders )
373
- {
374
- TResponse response ;
375
-
376
- using ( var activity = _activitySource . StartActivity ( $ "Elasticsearch: { request . HttpMethod } { urlTemplate } ", ActivityKind . Client ) )
377
- {
378
- activity ? . AddTag ( "db.system" , "elasticsearch" ) ;
379
- activity ? . SetCustomProperty ( "elastic.transport.client" , true ) ;
380
-
381
- response = await _transport . RequestAsync < TResponse > ( request . HttpMethod , url , postData , parameters ) . ConfigureAwait ( false ) ;
382
-
383
- if ( response . ApiCallDetails . RequestBodyInBytes is not null )
384
- activity ? . AddTag ( "db.statement" , System . Text . Encoding . UTF8 . GetString ( response . ApiCallDetails . RequestBodyInBytes ) ) ;
385
- }
386
-
387
- PostRequestProductCheck < TRequest , TResponse > ( request , response ) ;
388
-
389
- if ( _productCheckStatus == ProductCheckStatus . Failed )
390
- throw new UnsupportedProductException ( UnsupportedProductException . InvalidProductError ) ;
391
-
392
- if ( request . RequestParameters . RequestConfiguration is not null )
393
- {
394
- if ( ! hadRequestConfig )
395
- {
396
- request . RequestParameters . RequestConfiguration = null ;
397
- }
398
- else if ( originalHeaders . HasValue && originalHeaders . Value . Count > 0 )
399
- {
400
- request . RequestParameters . RequestConfiguration . ResponseHeadersToParse = originalHeaders . Value ;
401
- }
402
- }
403
-
404
- return response ;
405
- }
406
- }
179
+ => DoRequestAsync < TRequest , TResponse , TRequestParameters > ( request , null , cancellationToken ) ;
407
180
408
181
internal Task < TResponse > DoRequestAsync < TRequest , TResponse , TRequestParameters > (
409
182
TRequest request ,
410
- RequestParameters ? parameters ,
411
- Action < IRequestConfiguration > ? forceConfiguration = null ,
183
+ Action < IRequestConfiguration > ? forceConfiguration ,
412
184
CancellationToken cancellationToken = default )
413
185
where TRequest : Request < TRequestParameters >
414
186
where TResponse : ElasticsearchResponse , new ( )
@@ -446,12 +218,11 @@ internal Task<TResponse> DoRequestAsync<TRequest, TResponse, TRequestParameters>
446
218
}
447
219
}
448
220
449
- var ( resolvedUrl , urlTemplate , postData ) = PrepareRequest < TRequest , TRequestParameters > ( request , null ) ;
450
-
451
- if ( _productCheckStatus == ProductCheckStatus . Succeeded && ! requestModified && ! _activitySource . HasListeners ( ) )
452
- return _transport . RequestAsync < TResponse > ( request . HttpMethod , resolvedUrl , postData , parameters , cancellationToken ) ;
221
+ var ( resolvedUrl , urlTemplate , postData ) = PrepareRequest < TRequest , TRequestParameters > ( request , forceConfiguration ) ;
453
222
454
- return SendRequest ( request , parameters , resolvedUrl , postData , hadRequestConfig , originalHeaders ) ;
223
+ return _productCheckStatus == ProductCheckStatus . Succeeded && ! requestModified && ! _activitySource . HasListeners ( )
224
+ ? _transport . RequestAsync < TResponse > ( request . HttpMethod , resolvedUrl , postData , request . RequestParameters , cancellationToken )
225
+ : SendRequest ( request , request . RequestParameters , resolvedUrl , postData , hadRequestConfig , originalHeaders ) ;
455
226
456
227
async Task < TResponse > SendRequest ( TRequest request , RequestParameters ? parameters , string url , PostData postData , bool hadRequestConfig , HeadersList ? originalHeaders )
457
228
{
@@ -462,7 +233,7 @@ async Task<TResponse> SendRequest(TRequest request, RequestParameters? parameter
462
233
activity ? . AddTag ( "db.system" , "elasticsearch" ) ;
463
234
activity ? . SetCustomProperty ( "elastic.transport.client" , true ) ;
464
235
465
- response = await _transport . RequestAsync < TResponse > ( request . HttpMethod , url , postData , parameters ) . ConfigureAwait ( false ) ;
236
+ response = await _transport . RequestAsync < TResponse > ( request . HttpMethod , url , postData , parameters , cancellationToken ) . ConfigureAwait ( false ) ;
466
237
467
238
if ( response . ApiCallDetails . RequestBodyInBytes is not null )
468
239
activity ? . AddTag ( "db.statement" , System . Text . Encoding . UTF8 . GetString ( response . ApiCallDetails . RequestBodyInBytes ) ) ;
0 commit comments