41 lines
1.4 KiB
Go
41 lines
1.4 KiB
Go
package hindsight
|
|
|
|
import (
|
|
"net/http"
|
|
"time"
|
|
)
|
|
|
|
// NewAPIClientWithToken creates a new API client configured with a base URL and API token.
|
|
// The token is sent as a Bearer token in the Authorization header for all requests.
|
|
// Note: this uses http.DefaultClient which has no timeout. Use NewAPIClientWithTimeout
|
|
// to set a request timeout.
|
|
//
|
|
// Example:
|
|
//
|
|
// client := hindsight.NewAPIClientWithToken("https://api.example.com", "your-api-token")
|
|
// resp, _, err := client.MemoryAPI.RetainMemories(ctx, bankID).RetainRequest(req).Execute()
|
|
func NewAPIClientWithToken(baseURL, token string) *APIClient {
|
|
cfg := NewConfiguration()
|
|
cfg.Servers = ServerConfigurations{
|
|
{URL: baseURL},
|
|
}
|
|
cfg.AddDefaultHeader("Authorization", "Bearer "+token)
|
|
return NewAPIClient(cfg)
|
|
}
|
|
|
|
// NewAPIClientWithTimeout creates a new API client configured with a base URL, API token,
|
|
// and a request timeout. Use 0 for no timeout.
|
|
//
|
|
// Example:
|
|
//
|
|
// client := hindsight.NewAPIClientWithTimeout("https://api.example.com", "your-api-token", 30*time.Second)
|
|
// resp, _, err := client.MemoryAPI.RetainMemories(ctx, bankID).RetainRequest(req).Execute()
|
|
func NewAPIClientWithTimeout(baseURL, token string, timeout time.Duration) *APIClient {
|
|
cfg := NewConfiguration()
|
|
cfg.Servers = ServerConfigurations{
|
|
{URL: baseURL},
|
|
}
|
|
cfg.AddDefaultHeader("Authorization", "Bearer "+token)
|
|
cfg.HTTPClient = &http.Client{Timeout: timeout}
|
|
return NewAPIClient(cfg)
|
|
}
|