test-SiLaju / config /env_config.go
RyZ
deploy: deploy on HF
d88b81b
package config
import (
"os"
"strconv"
"strings"
"github.com/joho/godotenv"
)
type EnvConfig interface {
GetTCPAddress() string
GetLogPath() string
GetHostAddress() string
GetHostPort() string
GetEmailVerificationDuration() int
GetDatabaseHost() string
GetDatabasePort() string
GetDatabaseUser() string
GetDatabasePassword() string
GetDatabaseName() string
GetSalt() string
GetSupabaseURL() string
GetSupabaseKey() string
GetSupabaseBucket() string
}
type envConfig struct {
timezone string
}
func NewEnvConfig(timezone string) EnvConfig {
godotenv.Load()
os.Setenv("TZ", timezone)
return &envConfig{
timezone: timezone,
}
}
func (e *envConfig) GetTCPAddress() string {
host := os.Getenv("HOST_ADDRESS")
port := os.Getenv("HOST_PORT")
if port == "" {
port = "8080"
}
return host + ":" + port
}
func (e *envConfig) GetLogPath() string {
return os.Getenv("LOG_PATH")
}
func (e *envConfig) GetHostAddress() string {
return os.Getenv("HOST_ADDRESS")
}
func (e *envConfig) GetHostPort() string {
return os.Getenv("HOST_PORT")
}
func (e *envConfig) GetEmailVerificationDuration() int {
duration, err := strconv.Atoi(os.Getenv("EMAIL_VERIFICATION_DURATION"))
if err != nil {
return 0 // Default value if parsing fails
}
return duration
}
func (e *envConfig) GetDatabaseHost() string {
return os.Getenv("DB_HOST")
}
func (e *envConfig) GetDatabasePort() string {
return os.Getenv("DB_PORT")
}
func (e *envConfig) GetDatabaseUser() string {
return os.Getenv("DB_USER")
}
func (e *envConfig) GetDatabasePassword() string {
return os.Getenv("DB_PASSWORD")
}
func (e *envConfig) GetDatabaseName() string {
return os.Getenv("DB_NAME")
}
func (e *envConfig) GetSalt() string {
salt := os.Getenv("SALT")
if salt == "" {
return "Def4u|7" // Default salt value
}
return salt
}
func (e *envConfig) GetSupabaseURL() string {
return strings.TrimSpace(os.Getenv("SUPABASE_URL"))
}
func (e *envConfig) GetSupabaseKey() string {
return strings.TrimSpace(os.Getenv("SUPABASE_SERVICE_KEY"))
}
func (e *envConfig) GetSupabaseBucket() string {
return strings.TrimSpace(os.Getenv("SUPABASE_BUCKET_NAME"))
}