Basic working client
This commit is contained in:
@ -2,6 +2,7 @@ package eia
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"net/url"
|
||||
"slices"
|
||||
"time"
|
||||
@ -29,6 +30,7 @@ type Client struct {
|
||||
ctx context.Context
|
||||
apiKey string
|
||||
healthCheckTimeout time.Duration
|
||||
*eiaapi.Client
|
||||
*eiaapi.ClientWithResponses
|
||||
}
|
||||
|
||||
@ -41,6 +43,19 @@ type ClientOpts struct {
|
||||
HealthCheckTimeout *time.Duration // Timeout for Ping() function, default is 10s
|
||||
}
|
||||
|
||||
type Facet struct {
|
||||
Name string
|
||||
Data interface{}
|
||||
}
|
||||
|
||||
func NewFacets(facets ...*Facet) *eiaapi.Facets {
|
||||
newFacets := make(map[string]interface{}, len(facets))
|
||||
for _, f := range facets {
|
||||
newFacets[fmt.Sprintf("facets[%s][]", f.Name)] = f.Data
|
||||
}
|
||||
return &newFacets
|
||||
}
|
||||
|
||||
func NewClient(opts *ClientOpts) (*Client, error) {
|
||||
baseURL := defaultBaseURL
|
||||
if opts.BaseURL != nil {
|
||||
@ -80,7 +95,12 @@ func NewClient(opts *ClientOpts) (*Client, error) {
|
||||
eiaapi.WithRequestEditorFn(newLoggingMiddleware(opts.Logger, logLevel)))
|
||||
}
|
||||
|
||||
client, err := eiaapi.NewClientWithResponses(baseURL, slices.Clip(middlewares)...)
|
||||
client, err := eiaapi.NewClient(baseURL, slices.Clip(middlewares)...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
clientWithResponses, err := eiaapi.NewClientWithResponses(baseURL, slices.Clip(middlewares)...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -89,6 +109,7 @@ func NewClient(opts *ClientOpts) (*Client, error) {
|
||||
apiKey: opts.APIKey,
|
||||
ctx: opts.Context,
|
||||
healthCheckTimeout: hcTimeout,
|
||||
ClientWithResponses: client,
|
||||
Client: client,
|
||||
ClientWithResponses: clientWithResponses,
|
||||
}, nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user