@@ -12,12 +12,25 @@ import (
1212
1313 _client "github.com/ARM-software/embedded-development-services-client/client"
1414 "github.com/ARM-software/golang-utils/utils/commonerrors"
15+ "github.com/ARM-software/golang-utils/utils/field"
1516 "github.com/ARM-software/golang-utils/utils/http"
1617 "github.com/ARM-software/golang-utils/utils/reflection"
1718)
1819
1920// NewClient returns a new API client based on request configuration
2021func NewClient (cfg * http.RequestConfiguration , logger logr.Logger , underlyingHTTPClient * _http.Client ) (c * _client.APIClient , err error ) {
22+ httpClient , err := NewHTTPClient (cfg , http .DefaultBasicRetryPolicyConfiguration (), logger , underlyingHTTPClient )
23+ if err != nil {
24+ return
25+ }
26+ clientCfg := newClientConfiguration (cfg )
27+ clientCfg .HTTPClient = httpClient .StandardClient ()
28+ c = _client .NewAPIClient (clientCfg )
29+ return
30+ }
31+
32+ // NewHTTPClient returns an HTTP retryable client based on request configuration
33+ func NewHTTPClient (cfg * http.RequestConfiguration , retryCfg * http.RetryPolicyConfiguration , logger logr.Logger , underlyingHTTPClient * _http.Client ) (httpClient http.IRetryableClient , err error ) {
2134 if logger .IsZero () {
2235 err = commonerrors .ErrNoLogger
2336 return
@@ -32,11 +45,9 @@ func NewClient(cfg *http.RequestConfiguration, logger logr.Logger, underlyingHTT
3245 return
3346 }
3447
35- httpClientCfg := http .DefaultRobustHTTPClientConfiguration ()
36- httpClient := http .NewConfigurableRetryableClientWithLoggerAndCustomClient (httpClientCfg , cfg , logger , underlyingHTTPClient )
37- clientCfg := newClientConfiguration (cfg )
38- clientCfg .HTTPClient = httpClient .StandardClient ()
39- c = _client .NewAPIClient (clientCfg )
48+ httpClientCfg := http .DefaultHTTPClientConfiguration ()
49+ httpClientCfg .RetryPolicy = field .Optional [http.RetryPolicyConfiguration ](retryCfg , * http .DefaultBasicRetryPolicyConfiguration ())
50+ httpClient = http .NewConfigurableRetryableClientWithLoggerAndCustomClient (httpClientCfg , cfg , logger , underlyingHTTPClient )
4051 return
4152}
4253
0 commit comments