work on eia client

This commit is contained in:
2024-11-19 08:42:18 -05:00
parent 9af155dbde
commit 55f6086bd4
4 changed files with 74 additions and 55 deletions

View File

@ -29,7 +29,7 @@ type Client struct {
ctx context.Context
apiKey string
healthCheckTimeout time.Duration
*eiaapi.Client
*eiaapi.ClientWithResponses
}
type ClientOpts struct {
@ -56,11 +56,18 @@ func NewClient(opts *ClientOpts) (*Client, error) {
// Injects Authorization: Bearer <APIKey> header into
// outbound API calls
basicAuth, err := securityprovider.NewSecurityProviderBearerToken(opts.APIKey)
// basicAuth, err := securityprovider.NewSecurityProviderBearerToken(opts.APIKey)
// if err != nil {
// return nil, err
// }
// middlewares = append(middlewares, eiaapi.WithRequestEditorFn(basicAuth.Intercept))
// Injects API key as query parameter: ?api_key=<apiKey>
paramAuth, err := securityprovider.NewSecurityProviderApiKey("query", "api_key", opts.APIKey)
if err != nil {
return nil, err
}
middlewares = append(middlewares, eiaapi.WithRequestEditorFn(basicAuth.Intercept))
middlewares = append(middlewares, eiaapi.WithRequestEditorFn(paramAuth.Intercept))
// Logging middleware, if logger is given
if opts.Logger != nil {
@ -73,15 +80,15 @@ func NewClient(opts *ClientOpts) (*Client, error) {
eiaapi.WithRequestEditorFn(newLoggingMiddleware(opts.Logger, logLevel)))
}
client, err := eiaapi.NewClient(baseURL, slices.Clip(middlewares)...)
client, err := eiaapi.NewClientWithResponses(baseURL, slices.Clip(middlewares)...)
if err != nil {
return nil, err
}
return &Client{
apiKey: opts.APIKey,
ctx: opts.Context,
healthCheckTimeout: hcTimeout,
Client: client,
apiKey: opts.APIKey,
ctx: opts.Context,
healthCheckTimeout: hcTimeout,
ClientWithResponses: client,
}, nil
}