feat: 0.0.1

This commit is contained in:
FernandoJVideira committed 2026-01-08 01:15:07 +00:00
commit 961bdd81d4
146 files changed
+10444

No files matched your search

+65
View File
@@ -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
}