Skip to content

Commit e4df6f4

Browse files
authored
Create an utility to read response bodies (#1836)
We duplicate a small logic everywhere, let's refactor it.
1 parent 136c9c9 commit e4df6f4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+431
-1357
lines changed

.generator/src/generator/templates/api.j2

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -409,9 +409,7 @@ localVarQueryParams.Add("{{ parameter.name }}", {{ common_package_name }}.Parame
409409
return {% if returnType %}localVarReturnValue, {% endif %}localVarHTTPResponse, err
410410
}
411411

412-
localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body)
413-
localVarHTTPResponse.Body.Close()
414-
localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody))
412+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
415413
if err != nil {
416414
return {% if returnType %}localVarReturnValue, {% endif %}localVarHTTPResponse, err
417415
}

.generator/src/generator/templates/client.j2

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ type Service struct {
5151
Client *APIClient
5252
}
5353

54+
// SetAuthKeys sets the appropriate values in the headers parameter.
5455
func SetAuthKeys(ctx context.Context, headerParams *map[string]string, keys ...[2]string) {
5556
if ctx != nil {
5657
for _, key := range keys {
@@ -63,6 +64,14 @@ func SetAuthKeys(ctx context.Context, headerParams *map[string]string, keys ...[
6364
}
6465
}
6566

67+
// ReadBody returns the byte content of the response and make it available again on the response object.
68+
func ReadBody(response *http.Response) ([]byte, error) {
69+
body, err := io.ReadAll(response.Body)
70+
response.Body.Close()
71+
response.Body = io.NopCloser(bytes.NewBuffer(body))
72+
return body, err
73+
}
74+
6675
// NewAPIClient creates a new API client. Requires a userAgent string describing your application.
6776
// optionally a custom http.Client to allow for advanced features such as caching.
6877
func NewAPIClient(cfg *Configuration) *APIClient {

api/datadog/client.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ type Service struct {
5252
Client *APIClient
5353
}
5454

55+
// SetAuthKeys sets the appropriate values in the headers parameter.
5556
func SetAuthKeys(ctx context.Context, headerParams *map[string]string, keys ...[2]string) {
5657
if ctx != nil {
5758
for _, key := range keys {
@@ -64,6 +65,14 @@ func SetAuthKeys(ctx context.Context, headerParams *map[string]string, keys ...[
6465
}
6566
}
6667

68+
// ReadBody returns the byte content of the response and make it available again on the response object.
69+
func ReadBody(response *http.Response) ([]byte, error) {
70+
body, err := io.ReadAll(response.Body)
71+
response.Body.Close()
72+
response.Body = io.NopCloser(bytes.NewBuffer(body))
73+
return body, err
74+
}
75+
6776
// NewAPIClient creates a new API client. Requires a userAgent string describing your application.
6877
// optionally a custom http.Client to allow for advanced features such as caching.
6978
func NewAPIClient(cfg *Configuration) *APIClient {

api/datadogV1/api_authentication.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55
package datadogV1
66

77
import (
8-
"bytes"
98
_context "context"
10-
_io "io"
119
_nethttp "net/http"
1210
_neturl "net/url"
1311

@@ -75,9 +73,7 @@ func (a *AuthenticationApi) validateExecute(r apiValidateRequest) (Authenticatio
7573
return localVarReturnValue, localVarHTTPResponse, err
7674
}
7775

78-
localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body)
79-
localVarHTTPResponse.Body.Close()
80-
localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody))
76+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
8177
if err != nil {
8278
return localVarReturnValue, localVarHTTPResponse, err
8379
}

api/datadogV1/api_aws_integration.go

Lines changed: 9 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55
package datadogV1
66

77
import (
8-
"bytes"
98
_context "context"
10-
_io "io"
119
_nethttp "net/http"
1210
_neturl "net/url"
1311

@@ -87,9 +85,7 @@ func (a *AWSIntegrationApi) createAWSAccountExecute(r apiCreateAWSAccountRequest
8785
return localVarReturnValue, localVarHTTPResponse, err
8886
}
8987

90-
localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body)
91-
localVarHTTPResponse.Body.Close()
92-
localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody))
88+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
9389
if err != nil {
9490
return localVarReturnValue, localVarHTTPResponse, err
9591
}
@@ -189,9 +185,7 @@ func (a *AWSIntegrationApi) createAWSTagFilterExecute(r apiCreateAWSTagFilterReq
189185
return localVarReturnValue, localVarHTTPResponse, err
190186
}
191187

192-
localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body)
193-
localVarHTTPResponse.Body.Close()
194-
localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody))
188+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
195189
if err != nil {
196190
return localVarReturnValue, localVarHTTPResponse, err
197191
}
@@ -291,9 +285,7 @@ func (a *AWSIntegrationApi) createNewAWSExternalIDExecute(r apiCreateNewAWSExter
291285
return localVarReturnValue, localVarHTTPResponse, err
292286
}
293287

294-
localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body)
295-
localVarHTTPResponse.Body.Close()
296-
localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody))
288+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
297289
if err != nil {
298290
return localVarReturnValue, localVarHTTPResponse, err
299291
}
@@ -393,9 +385,7 @@ func (a *AWSIntegrationApi) deleteAWSAccountExecute(r apiDeleteAWSAccountRequest
393385
return localVarReturnValue, localVarHTTPResponse, err
394386
}
395387

396-
localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body)
397-
localVarHTTPResponse.Body.Close()
398-
localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody))
388+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
399389
if err != nil {
400390
return localVarReturnValue, localVarHTTPResponse, err
401391
}
@@ -495,9 +485,7 @@ func (a *AWSIntegrationApi) deleteAWSTagFilterExecute(r apiDeleteAWSTagFilterReq
495485
return localVarReturnValue, localVarHTTPResponse, err
496486
}
497487

498-
localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body)
499-
localVarHTTPResponse.Body.Close()
500-
localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody))
488+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
501489
if err != nil {
502490
return localVarReturnValue, localVarHTTPResponse, err
503491
}
@@ -642,9 +630,7 @@ func (a *AWSIntegrationApi) listAWSAccountsExecute(r apiListAWSAccountsRequest)
642630
return localVarReturnValue, localVarHTTPResponse, err
643631
}
644632

645-
localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body)
646-
localVarHTTPResponse.Body.Close()
647-
localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody))
633+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
648634
if err != nil {
649635
return localVarReturnValue, localVarHTTPResponse, err
650636
}
@@ -742,9 +728,7 @@ func (a *AWSIntegrationApi) listAWSTagFiltersExecute(r apiListAWSTagFiltersReque
742728
return localVarReturnValue, localVarHTTPResponse, err
743729
}
744730

745-
localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body)
746-
localVarHTTPResponse.Body.Close()
747-
localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody))
731+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
748732
if err != nil {
749733
return localVarReturnValue, localVarHTTPResponse, err
750734
}
@@ -836,9 +820,7 @@ func (a *AWSIntegrationApi) listAvailableAWSNamespacesExecute(r apiListAvailable
836820
return localVarReturnValue, localVarHTTPResponse, err
837821
}
838822

839-
localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body)
840-
localVarHTTPResponse.Body.Close()
841-
localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody))
823+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
842824
if err != nil {
843825
return localVarReturnValue, localVarHTTPResponse, err
844826
}
@@ -991,9 +973,7 @@ func (a *AWSIntegrationApi) updateAWSAccountExecute(r apiUpdateAWSAccountRequest
991973
return localVarReturnValue, localVarHTTPResponse, err
992974
}
993975

994-
localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body)
995-
localVarHTTPResponse.Body.Close()
996-
localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody))
976+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
997977
if err != nil {
998978
return localVarReturnValue, localVarHTTPResponse, err
999979
}

api/datadogV1/api_aws_logs_integration.go

Lines changed: 7 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55
package datadogV1
66

77
import (
8-
"bytes"
98
_context "context"
10-
_io "io"
119
_nethttp "net/http"
1210
_neturl "net/url"
1311

@@ -91,9 +89,7 @@ func (a *AWSLogsIntegrationApi) checkAWSLogsLambdaAsyncExecute(r apiCheckAWSLogs
9189
return localVarReturnValue, localVarHTTPResponse, err
9290
}
9391

94-
localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body)
95-
localVarHTTPResponse.Body.Close()
96-
localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody))
92+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
9793
if err != nil {
9894
return localVarReturnValue, localVarHTTPResponse, err
9995
}
@@ -202,9 +198,7 @@ func (a *AWSLogsIntegrationApi) checkAWSLogsServicesAsyncExecute(r apiCheckAWSLo
202198
return localVarReturnValue, localVarHTTPResponse, err
203199
}
204200

205-
localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body)
206-
localVarHTTPResponse.Body.Close()
207-
localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody))
201+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
208202
if err != nil {
209203
return localVarReturnValue, localVarHTTPResponse, err
210204
}
@@ -304,9 +298,7 @@ func (a *AWSLogsIntegrationApi) createAWSLambdaARNExecute(r apiCreateAWSLambdaAR
304298
return localVarReturnValue, localVarHTTPResponse, err
305299
}
306300

307-
localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body)
308-
localVarHTTPResponse.Body.Close()
309-
localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody))
301+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
310302
if err != nil {
311303
return localVarReturnValue, localVarHTTPResponse, err
312304
}
@@ -406,9 +398,7 @@ func (a *AWSLogsIntegrationApi) deleteAWSLambdaARNExecute(r apiDeleteAWSLambdaAR
406398
return localVarReturnValue, localVarHTTPResponse, err
407399
}
408400

409-
localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body)
410-
localVarHTTPResponse.Body.Close()
411-
localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody))
401+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
412402
if err != nil {
413403
return localVarReturnValue, localVarHTTPResponse, err
414404
}
@@ -508,9 +498,7 @@ func (a *AWSLogsIntegrationApi) enableAWSLogServicesExecute(r apiEnableAWSLogSer
508498
return localVarReturnValue, localVarHTTPResponse, err
509499
}
510500

511-
localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body)
512-
localVarHTTPResponse.Body.Close()
513-
localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody))
501+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
514502
if err != nil {
515503
return localVarReturnValue, localVarHTTPResponse, err
516504
}
@@ -602,9 +590,7 @@ func (a *AWSLogsIntegrationApi) listAWSLogsIntegrationsExecute(r apiListAWSLogsI
602590
return localVarReturnValue, localVarHTTPResponse, err
603591
}
604592

605-
localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body)
606-
localVarHTTPResponse.Body.Close()
607-
localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody))
593+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
608594
if err != nil {
609595
return localVarReturnValue, localVarHTTPResponse, err
610596
}
@@ -696,9 +682,7 @@ func (a *AWSLogsIntegrationApi) listAWSLogsServicesExecute(r apiListAWSLogsServi
696682
return localVarReturnValue, localVarHTTPResponse, err
697683
}
698684

699-
localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body)
700-
localVarHTTPResponse.Body.Close()
701-
localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody))
685+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
702686
if err != nil {
703687
return localVarReturnValue, localVarHTTPResponse, err
704688
}

api/datadogV1/api_azure_integration.go

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55
package datadogV1
66

77
import (
8-
"bytes"
98
_context "context"
10-
_io "io"
119
_nethttp "net/http"
1210
_neturl "net/url"
1311

@@ -90,9 +88,7 @@ func (a *AzureIntegrationApi) createAzureIntegrationExecute(r apiCreateAzureInte
9088
return localVarReturnValue, localVarHTTPResponse, err
9189
}
9290

93-
localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body)
94-
localVarHTTPResponse.Body.Close()
95-
localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody))
91+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
9692
if err != nil {
9793
return localVarReturnValue, localVarHTTPResponse, err
9894
}
@@ -192,9 +188,7 @@ func (a *AzureIntegrationApi) deleteAzureIntegrationExecute(r apiDeleteAzureInte
192188
return localVarReturnValue, localVarHTTPResponse, err
193189
}
194190

195-
localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body)
196-
localVarHTTPResponse.Body.Close()
197-
localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody))
191+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
198192
if err != nil {
199193
return localVarReturnValue, localVarHTTPResponse, err
200194
}
@@ -286,9 +280,7 @@ func (a *AzureIntegrationApi) listAzureIntegrationExecute(r apiListAzureIntegrat
286280
return localVarReturnValue, localVarHTTPResponse, err
287281
}
288282

289-
localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body)
290-
localVarHTTPResponse.Body.Close()
291-
localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody))
283+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
292284
if err != nil {
293285
return localVarReturnValue, localVarHTTPResponse, err
294286
}
@@ -388,9 +380,7 @@ func (a *AzureIntegrationApi) updateAzureHostFiltersExecute(r apiUpdateAzureHost
388380
return localVarReturnValue, localVarHTTPResponse, err
389381
}
390382

391-
localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body)
392-
localVarHTTPResponse.Body.Close()
393-
localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody))
383+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
394384
if err != nil {
395385
return localVarReturnValue, localVarHTTPResponse, err
396386
}
@@ -492,9 +482,7 @@ func (a *AzureIntegrationApi) updateAzureIntegrationExecute(r apiUpdateAzureInte
492482
return localVarReturnValue, localVarHTTPResponse, err
493483
}
494484

495-
localVarBody, err := _io.ReadAll(localVarHTTPResponse.Body)
496-
localVarHTTPResponse.Body.Close()
497-
localVarHTTPResponse.Body = _io.NopCloser(bytes.NewBuffer(localVarBody))
485+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
498486
if err != nil {
499487
return localVarReturnValue, localVarHTTPResponse, err
500488
}

0 commit comments

Comments
 (0)