12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package errorreport
- import (
- "errors"
- "github.com/imgproxy/imgproxy/v3/ensure"
- "github.com/imgproxy/imgproxy/v3/errorreport/airbrake"
- "github.com/imgproxy/imgproxy/v3/errorreport/bugsnag"
- "github.com/imgproxy/imgproxy/v3/errorreport/honeybadger"
- "github.com/imgproxy/imgproxy/v3/errorreport/sentry"
- )
- // Config holds error reporting-related configuration for all providers.
- type Config struct {
- Airbrake airbrake.Config
- Bugsnag bugsnag.Config
- Honeybadger honeybadger.Config
- Sentry sentry.Config
- }
- // NewDefaultConfig creates a new Config instance with default values.
- func NewDefaultConfig() Config {
- return Config{
- Airbrake: airbrake.NewDefaultConfig(),
- Bugsnag: bugsnag.NewDefaultConfig(),
- Honeybadger: honeybadger.NewDefaultConfig(),
- Sentry: sentry.NewDefaultConfig(),
- }
- }
- // LoadConfigFromEnv creates a new Config instance loading values from environment variables.
- func LoadConfigFromEnv(c *Config) (*Config, error) {
- c = ensure.Ensure(c, NewDefaultConfig)
- var airbErr, bugErr, honeyErr, sentErr error
- _, airbErr = airbrake.LoadConfigFromEnv(&c.Airbrake)
- _, bugErr = bugsnag.LoadConfigFromEnv(&c.Bugsnag)
- _, honeyErr = honeybadger.LoadConfigFromEnv(&c.Honeybadger)
- _, sentErr = sentry.LoadConfigFromEnv(&c.Sentry)
- err := errors.Join(airbErr, bugErr, honeyErr, sentErr)
- return c, err
- }
- // Validate checks if the configuration is valid
- func (c *Config) Validate() error {
- return errors.Join(
- c.Airbrake.Validate(),
- c.Bugsnag.Validate(),
- c.Honeybadger.Validate(),
- c.Sentry.Validate(),
- )
- }
|