support client credentials

This commit is contained in:
Mike Mason
2023-07-17 22:05:23 +00:00
parent df0cc4aa58
commit fee4cf94ab
6 changed files with 79 additions and 38 deletions

View File

@@ -15,10 +15,14 @@ import (
"go.uber.org/zap"
)
const defaultPermissionsURL = "https://permissions-api.hollow-a.sv15.metalkube.net"
const (
defaultPermissionsURL = "https://permissions-api.hollow-a.sv15.metalkube.net"
var defaultHTTPClient = &http.Client{
Timeout: 5 * time.Second, // nolint:gomnd // unexported
DefaultHTTPClientTimeout = 5 * time.Second
)
var DefaultHTTPClient = &http.Client{
Timeout: DefaultHTTPClientTimeout,
}
// Client is the permissions client.
@@ -108,7 +112,7 @@ func encodeJSON(v any) (*bytes.Buffer, error) {
func NewClient(token string, options ...Option) (*Client, error) {
client := &Client{
logger: zap.NewNop().Sugar(),
httpClient: defaultHTTPClient,
httpClient: DefaultHTTPClient,
token: token,
}

View File

@@ -1,6 +1,8 @@
package permissions
import (
"net/http"
"go.uber.org/zap"
)
@@ -15,3 +17,12 @@ func WithLogger(logger *zap.SugaredLogger) Option {
return nil
}
}
// WithHTTPClient sets the http client to be used by the client.
func WithHTTPClient(client *http.Client) Option {
return func(c *Client) error {
c.httpClient = client
return nil
}
}