Skip to content

Commit

Permalink
client: Allow configuration of http client
Browse files Browse the repository at this point in the history
Signed-off-by: yolossn <nssvlr@gmail.com>
  • Loading branch information
yolossn committed Apr 11, 2022
1 parent 29e8191 commit e921f36
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion api/client.go
Expand Up @@ -40,6 +40,8 @@ type Config struct {
// The address of the Prometheus to connect to.
Address string

Client *http.Client

// RoundTripper is used by the Client to drive HTTP requests. If not
// provided, DefaultRoundTripper will be used.
RoundTripper http.RoundTripper
Expand All @@ -52,6 +54,16 @@ func (cfg *Config) roundTripper() http.RoundTripper {
return cfg.RoundTripper
}

func (cfg *Config) client() *http.Client {
if cfg.Client == nil {
// Set the roundtripper for old code
return &http.Client{
Transport: cfg.roundTripper(),
}
}
return cfg.Client
}

// Client is the interface for an API client.
type Client interface {
URL(ep string, args map[string]string) *url.URL
Expand All @@ -70,7 +82,7 @@ func NewClient(cfg Config) (Client, error) {

return &httpClient{
endpoint: u,
client: http.Client{Transport: cfg.roundTripper()},
client: *cfg.client(),
}, nil
}

Expand Down

0 comments on commit e921f36

Please sign in to comment.