diff --git a/internal/apiclient.go b/internal/apiclient.go new file mode 100644 index 0000000..518db40 --- /dev/null +++ b/internal/apiclient.go @@ -0,0 +1,18 @@ +package internal + +import "os" + +// APIClient is a minimal client for the (future) demo API. +type APIClient struct { + APIKey string +} + +// NewAPIClientFromEnv builds a client using the API key from the +// DEMO_API_KEY environment variable. Returns an error if it's unset. +func NewAPIClientFromEnv() (*APIClient, error) { + key := os.Getenv("DEMO_API_KEY") + if key == "" { + return nil, errMissingAPIKey + } + return &APIClient{APIKey: key}, nil +} diff --git a/internal/errors.go b/internal/errors.go new file mode 100644 index 0000000..ff8b708 --- /dev/null +++ b/internal/errors.go @@ -0,0 +1,5 @@ +package internal + +import "errors" + +var errMissingAPIKey = errors.New("DEMO_API_KEY environment variable is not set")