Skip to content

Commit 1643e23

Browse files
millotpFluf22
authored andcommitted
go
1 parent 6d734c8 commit 1643e23

File tree

4 files changed

+41
-10
lines changed

4 files changed

+41
-10
lines changed

clients/algoliasearch-client-go/algolia/transport/transport.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ func New(cfg Configuration) *Transport {
4444
return transport
4545
}
4646

47-
func (t *Transport) Request(ctx context.Context, req *http.Request, k call.Kind, c *RequestConfiguration) (*http.Response, []byte, error) {
47+
func (t *Transport) Request(ctx context.Context, req *http.Request, k call.Kind, c RequestConfiguration) (*http.Response, []byte, error) {
4848
var intermediateNetworkErrors []error
4949

5050
// Add Content-Encoding header, if needed
@@ -65,15 +65,15 @@ func (t *Transport) Request(ctx context.Context, req *http.Request, k call.Kind,
6565
)
6666

6767
switch {
68-
case c != nil && k == call.Read && c.ReadTimeout != nil:
68+
case k == call.Read && c.ReadTimeout != nil:
6969
ctxTimeout = *c.ReadTimeout
70-
case c != nil && k == call.Write && c.WriteTimeout != nil:
70+
case k == call.Write && c.WriteTimeout != nil:
7171
ctxTimeout = *c.WriteTimeout
7272
default:
7373
ctxTimeout = h.timeout
7474
}
7575

76-
if c != nil && c.ConnectTimeout != nil {
76+
if c.ConnectTimeout != nil {
7777
connectTimeout = *c.ConnectTimeout
7878
} else {
7979
connectTimeout = t.connectTimeout

templates/go/api.mustache

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ type config struct {
3030
context context.Context
3131
queryParams url.Values
3232
headerParams map[string]string
33+
timeouts transport.RequestConfiguration
3334
3435
{{#isSearchClient}}
3536
// -- ChunkedBatch options
@@ -80,6 +81,24 @@ func WithQueryParam(key string, value any) requestOption {
8081
})
8182
}
8283

84+
func WithReadTimeout(timeout time.Duration) requestOption {
85+
return requestOption(func(c *config) {
86+
c.timeouts.ReadTimeout = &timeout
87+
})
88+
}
89+
90+
func WithWriteTimeout(timeout time.Duration) requestOption {
91+
return requestOption(func(c *config) {
92+
c.timeouts.WriteTimeout = &timeout
93+
})
94+
}
95+
96+
func WithConnectTimeout(timeout time.Duration) requestOption {
97+
return requestOption(func(c *config) {
98+
c.timeouts.ConnectTimeout = &timeout
99+
})
100+
}
101+
83102
{{#isSearchClient}}
84103

85104
// --------- ChunkedBatch options ---------
@@ -453,6 +472,13 @@ func (c *APIClient) {{nickname}}WithHTTPInfo({{#hasParams}}r {{#structPrefix}}{{
453472
context: context.Background(),
454473
queryParams: url.Values{},
455474
headerParams: map[string]string{},
475+
{{#vendorExtensions.x-timeouts}}
476+
timeouts: transport.RequestConfiguration{
477+
ReadTimeout: utils.ToPtr({{read}} * time.Millisecond),
478+
WriteTimeout: utils.ToPtr({{write}} * time.Millisecond),
479+
ConnectTimeout: utils.ToPtr({{connect}} * time.Millisecond),
480+
},
481+
{{/vendorExtensions.x-timeouts}}
456482
}
457483

458484
{{#vendorExtensions.x-is-custom-request}}
@@ -507,11 +533,7 @@ func (c *APIClient) {{nickname}}WithHTTPInfo({{#hasParams}}r {{#structPrefix}}{{
507533
return nil, nil, err
508534
}
509535

510-
return c.callAPI(
511-
req,
512-
{{#vendorExtensions}}{{#x-use-read-transporter}}true{{/x-use-read-transporter}}{{^x-use-read-transporter}}false{{/x-use-read-transporter}},{{/vendorExtensions}}
513-
{{#vendorExtensions.x-timeouts}}&transport.RequestConfiguration{ReadTimeout: utils.ToPtr({{read}} * time.Millisecond), WriteTimeout: utils.ToPtr({{write}} * time.Millisecond), ConnectTimeout: utils.ToPtr({{connect}} * time.Millisecond)}{{/vendorExtensions.x-timeouts}}{{^vendorExtensions.x-timeouts}}nil{{/vendorExtensions.x-timeouts}},
514-
)
536+
return c.callAPI(req, {{#vendorExtensions}}{{#x-use-read-transporter}}true{{/x-use-read-transporter}}{{^x-use-read-transporter}}false{{/x-use-read-transporter}},{{/vendorExtensions}}conf.timeouts)
515537
}
516538

517539
/*

templates/go/client.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ func (c *APIClient) AddDefaultHeader(key string, value string) {
129129
}
130130

131131
// callAPI do the request.
132-
func (c *APIClient) callAPI(request *http.Request, useReadTransporter bool, requestConfiguration *transport.RequestConfiguration) (*http.Response, []byte, error) {
132+
func (c *APIClient) callAPI(request *http.Request, useReadTransporter bool, requestConfiguration transport.RequestConfiguration) (*http.Response, []byte, error) {
133133
callKind := call.Write
134134
if useReadTransporter || request.Method == http.MethodGet {
135135
callKind = call.Read

templates/go/tests/method.mustache

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,13 @@ client.{{#lambda.titlecase}}{{method}}{{/lambda.titlecase}}({{#hasParams}}{{^isH
22
{{#parametersWithDataType}}{{#required}}{{> tests/generateParams}},{{/required}}{{/parametersWithDataType}}
33
{{^isHelper}}){{#parametersWithDataType}}{{^required}}.With{{#lambda.pascalcase}}{{{key}}}{{/lambda.pascalcase}}({{> tests/generateParams}}){{/required}}{{/parametersWithDataType}}{{/isHelper}}{{#isHelper}}{{#parametersWithDataType}}{{^required}}{{> tests/generateParams}},{{/required}}{{/parametersWithDataType}}{{/isHelper}}{{/hasParams}}{{#requestOptions}}{{#hasParams}},{{/hasParams}}
44
{{#queryParameters.parametersWithDataType}}{{clientPrefix}}.WithQueryParam("{{{key}}}", {{> tests/generateInnerParams}}),{{/queryParameters.parametersWithDataType}}{{#headers.parametersWithDataType}}{{clientPrefix}}.WithHeaderParam("{{{key}}}", {{> tests/generateInnerParams}}),{{/headers.parametersWithDataType}}
5+
{{#timeouts.read}}
6+
{{clientPrefix}}.WithReadTimeout({{.}} * time.Millisecond),
7+
{{/timeouts.read}}
8+
{{#timeouts.write}}
9+
{{clientPrefix}}.WithWriteTimeout({{.}} * time.Millisecond),
10+
{{/timeouts.write}}
11+
{{#timeouts.connect}}
12+
{{clientPrefix}}.WithConnectTimeout({{.}} * time.Millisecond),
13+
{{/timeouts.connect}}
514
{{/requestOptions}})

0 commit comments

Comments
 (0)