df/bff/util/config.go
2023-12-01 00:23:46 +01:00

44 lines
1.5 KiB
Go

package util
import (
"time"
"github.com/spf13/viper"
)
type Config struct {
DBSource string `mapstructure:"DB_SOURCE"`
DBDriver string `mapstructure:"DB_DRIVER"`
HTTPServerAddress string `mapstructure:"HTTP_SERVER_ADDRESS"`
GRPCServerAddress string `mapstructure:"GRPC_SERVER_ADDRESS"`
Environment string `mapstructure:"ENVIRONMENT"`
LogOutput string `mapstructure:"LOG_OUTPUT"`
TokenPrivateKeyHex string `mapstructure:"TOKEN_PRIVATEKEY_HEX"`
MigrationURL string `mapstructure:"MIGRATION_URL"`
Swagger bool `mapstructure:"SWAGGER"`
Url string `mapstructure:"URL"`
SMTPAddress string `mapstructure:"SMTP_ADDRESS"`
SMTPPassword string `mapstructure:"SMTP_PASSWORD"`
SMTPMail string `mapstructure:"SMTP_MAIL"`
MigrationRetries int `mapstructure:"MIGRATION_RETRIES"`
Swagger bool `mapstructure:"SWAGGER"`
AccessTokenDuration time.Duration `mapstructure:"ACCESS_TOKEN_DURATION"`
RefreshTokenDuration time.Duration `mapstructure:"REFRESH_TOKEN_DURATION"`
}
func LoadConfig(path string) (config Config, err error) {
viper.AddConfigPath(path)
viper.SetConfigName("app")
viper.SetConfigType("env")
viper.AutomaticEnv()
err = viper.ReadInConfig()
if err != nil {
return
}
err = viper.Unmarshal(&config)
return
}