api/config/config.go
2025-10-01 19:32:56 +03:00

76 lines
1.6 KiB
Go

package config
import "strings"
type Config struct {
AppConf AppConfig
DBConf DatabaseConfig
JWTConf JWTConfig
GrpcConf GrpcConfig
}
type AppConfig struct {
Host string
Port string
LogLvl string
ApiPrefix string
GinMode string
AllowedOrigins []string
}
type DatabaseConfig struct {
Host string
Port string
User string
Password string
SSLMode string
DBName string
LogLevel string
}
type JWTConfig struct {
Secret string
Issuer string
AccessExpire string
RefreshExpire string
}
type GrpcConfig struct {
GrpcServerPort string
GrpcClientPort string
}
func NewConfig() *Config {
return &Config{
AppConf: AppConfig{
Host: getEnv("APP_HOST", ""),
Port: getEnv("APP_PORT", ""),
LogLvl: getEnv("APP_LOGLVL", ""),
ApiPrefix: getEnv("APP_API_PREFIX", ""),
GinMode: getEnv("APP_GIN_MODE", ""),
AllowedOrigins: strings.Split(getEnv("APP_ALLOWED_ORIGINS", ""), ","),
},
DBConf: DatabaseConfig{
Host: getEnv("DB_HOST", ""),
Port: getEnv("DB_PORT", ""),
User: getEnv("DB_USER", ""),
Password: getEnv("DB_PASSWORD", ""),
SSLMode: getEnv("DB_SSLMODE", ""),
DBName: getEnv("DB_NAME", ""),
LogLevel: getEnv("DB_LOGLEVEL", ""),
},
JWTConf: JWTConfig{
Secret: getEnv("JWT_SECRET", ""),
Issuer: getEnv("JWT_ISSUER", ""),
AccessExpire: getEnv("JWT_ACCESS_EXPIRE", ""),
RefreshExpire: getEnv("JWT_REFRESH_EXPIRE", ""),
},
GrpcConf: GrpcConfig{
GrpcServerPort: getEnv("GRPC_SERVER_PORT", ""),
GrpcClientPort: getEnv("GRPC_CLIENT_PORT", ""),
},
}
}