feat: 0.0.1
This commit is contained in:
146 files changed
+10444
No files matched your search
@@ -0,0 +1,65 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/spf13/viper"
|
||||
)
|
||||
|
||||
// Config stores all configuration of the application.
|
||||
// The values are read from environment variables or a config file.
|
||||
type Config struct {
|
||||
// Server settings
|
||||
ServiceName string `mapstructure:"SERVICE_NAME"`
|
||||
FrontendURL string `mapstructure:"FRONTEND_URL"`
|
||||
AllowedOrigins []string `mapstructure:"ALLOWED_ORIGINS"`
|
||||
DBAddr string `mapstructure:"DB_ADDR"`
|
||||
RedisAddr string `mapstructure:"REDIS_ADDR"`
|
||||
RedisPassword string `mapstructure:"REDIS_PASSWORD"`
|
||||
RedisDB int `mapstructure:"REDIS_DB"`
|
||||
MigrationURL string `mapstructure:"MIGRATIONS_URL"`
|
||||
HTTPServerAddr string `mapstructure:"HTTP_SERVER_ADDR"`
|
||||
GrpcServerAddr string `mapstructure:"GRPC_SERVER_ADDR"`
|
||||
AuthTokenExp time.Duration `mapstructure:"AUTH_TOKEN_EXP"`
|
||||
RefreshTokenExp time.Duration `mapstructure:"REFRESH_TOKEN_EXP"`
|
||||
MinTokenSize int `mapstructure:"AUTH_TOKEN_MIN_KEY_SIZE"`
|
||||
TokenKey string `mapstructure:"AUTH_TOKEN_SECRET"`
|
||||
TokenISS string `mapstructure:"AUTH_TOKEN_ISS"`
|
||||
TokenAUD string `mapstructure:"AUTH_TOKEN_AUD"`
|
||||
EmailSender string `mapstructure:"EMAIL_FROM"`
|
||||
EmailSenderName string `mapstructure:"EMAIL_FROM_NAME"`
|
||||
EmailPassword string `mapstructure:"EMAIL_SMTP_PASSWORD"`
|
||||
Environment string `mapstructure:"ENVIRONMENT"`
|
||||
}
|
||||
|
||||
// LoadConfig reads configuration from file or environment variables.
|
||||
func LoadConfig(path string) (config Config, err error) {
|
||||
viper.AddConfigPath(path)
|
||||
viper.SetConfigName("api")
|
||||
viper.SetConfigType("env") // could be json, toml, yaml, env, etc.
|
||||
|
||||
viper.AutomaticEnv() // read in environment variables that match
|
||||
|
||||
err = viper.ReadInConfig()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
err = viper.Unmarshal(&config)
|
||||
return
|
||||
}
|
||||
|
||||
// LoadTestConfig reads test configuration from file or environment variables.
|
||||
func LoadTestConfig(path string) (config Config, err error) {
|
||||
viper.AddConfigPath(path)
|
||||
viper.SetConfigName("api_test")
|
||||
viper.SetConfigType("env") // could be json, toml, yaml, env, etc.
|
||||
|
||||
viper.AutomaticEnv() // read in environment variables that match
|
||||
|
||||
err = viper.ReadInConfig()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
err = viper.Unmarshal(&config)
|
||||
return
|
||||
}
|
||||
Reference in new issue
Block a user