24 lines
678 B
Go
24 lines
678 B
Go
package rest
|
|
|
|
import (
|
|
"git.intra.yksa.space/gsn/predictor/internal/pkg/errcodes"
|
|
env "github.com/caarlos0/env/v11"
|
|
)
|
|
|
|
type Config struct {
|
|
Host string `env:"HOST" envDefault:"0.0.0.0"`
|
|
Port int `env:"PORT" envDefault:"8080"`
|
|
ReadTimeout string `env:"READ_TIMEOUT" envDefault:"30s"`
|
|
WriteTimeout string `env:"WRITE_TIMEOUT" envDefault:"30s"`
|
|
IdleTimeout string `env:"IDLE_TIMEOUT" envDefault:"60s"`
|
|
}
|
|
|
|
func NewConfig() (*Config, error) {
|
|
cfg := &Config{}
|
|
if err := env.ParseWithOptions(cfg, env.Options{
|
|
PrefixTagName: "GSN_PREDICTOR_REST_",
|
|
}); err != nil {
|
|
return nil, errcodes.Wrap(err, "failed to parse REST config")
|
|
}
|
|
return cfg, nil
|
|
}
|