diff options
Diffstat (limited to 'internal/config')
| -rw-r--r-- | internal/config/config.go | 36 | ||||
| -rw-r--r-- | internal/config/errors.go | 7 |
2 files changed, 43 insertions, 0 deletions
diff --git a/internal/config/config.go b/internal/config/config.go new file mode 100644 index 0000000..44ca7e6 --- /dev/null +++ b/internal/config/config.go @@ -0,0 +1,36 @@ +package config + +import ( + "os" + "time" +) + +type Config struct { + APIKey string + BaseURL string + Timeout time.Duration + MaxRetries int + UserAgent string +} + +func New() *Config { + return &Config{ + APIKey: os.Getenv("DBORG_API_KEY"), + BaseURL: "https://db.org.ai", + Timeout: 30 * time.Second, + MaxRetries: 3, + UserAgent: "dborg-cli/1.0", + } +} + +func (c *Config) WithAPIKey(key string) *Config { + c.APIKey = key + return c +} + +func (c *Config) Validate() error { + if c.APIKey == "" { + return ErrMissingAPIKey + } + return nil +} diff --git a/internal/config/errors.go b/internal/config/errors.go new file mode 100644 index 0000000..4fd3636 --- /dev/null +++ b/internal/config/errors.go @@ -0,0 +1,7 @@ +package config + +import "errors" + +var ( + ErrMissingAPIKey = errors.New("API key required: set DBORG_API_KEY environment variable or use --api-key flag") +) |
