diff --git a/eppoclient/config.go b/eppoclient/config.go index 5db3962..617f855 100644 --- a/eppoclient/config.go +++ b/eppoclient/config.go @@ -2,6 +2,7 @@ package eppoclient import ( "fmt" + "net/http" "time" "go.uber.org/zap" @@ -16,6 +17,7 @@ type Config struct { AssignmentLogger IAssignmentLogger PollerInterval time.Duration ApplicationLogger ApplicationLogger + HttpClient *http.Client } func (cfg *Config) validate() error { diff --git a/eppoclient/initclient.go b/eppoclient/initclient.go index e89c9ac..53b3810 100644 --- a/eppoclient/initclient.go +++ b/eppoclient/initclient.go @@ -14,7 +14,13 @@ func InitClient(config Config) (*EppoClient, error) { sdkParams := SDKParams{sdkKey: config.SdkKey, sdkName: "go", sdkVersion: __version__} applicationLogger := config.ApplicationLogger - httpClient := newHttpClient(config.BaseUrl, &http.Client{Timeout: REQUEST_TIMEOUT_SECONDS}, sdkParams) + var httpClientInstance *http.Client + if config.HttpClient != nil { + httpClientInstance = config.HttpClient + } else { + httpClientInstance = &http.Client{Timeout: REQUEST_TIMEOUT_SECONDS} + } + httpClient := newHttpClient(config.BaseUrl, httpClientInstance, sdkParams) configStore := newConfigurationStore() requestor := newConfigurationRequestor(*httpClient, configStore, applicationLogger)