2025-07-17 10:22:20 -04:00

90 lines
2.7 KiB
Go

package main
import (
"os"
"strconv"
)
type Config struct {
ServerPort uint16
AuthHostName string
AuthInternalUrl string
AuthRealm string
AuthAdminClientID string
AuthClientSecret string
AuthEmailRedirectURI string
AuthEmailLifespan int
AuthEmailClientID string
FhirBaseUrl string
VhlBaseUrl string
APISwagger bool
LogLevel string
}
func LoadConfig() Config {
cfg := Config{
ServerPort: 3000,
AuthHostName: "http://localhost:9083",
AuthInternalUrl: "http://localhost:9083",
AuthRealm: "lacpass",
AuthAdminClientID: "admin-cli",
AuthClientSecret: "bbU4vnqhqe2AJ32XpdQVRVqfRMA82Hnu",
AuthEmailRedirectURI: "ph4happ://open/validated-email",
AuthEmailLifespan: 3600,
AuthEmailClientID: "app",
FhirBaseUrl: "http://lacpass.create.cl:8080",
VhlBaseUrl: "http://lacpass.create.cl:8182",
APISwagger: false,
LogLevel: "info",
}
if serverPort, exists := os.LookupEnv("API_PORT"); exists {
if port, err := strconv.ParseUint(serverPort, 10, 16); err == nil {
cfg.ServerPort = uint16(port)
}
}
if authUrl, exists := os.LookupEnv("AUTH_INTERNAL_URL"); exists {
cfg.AuthInternalUrl = authUrl
}
if authHostname, exists := os.LookupEnv("AUTH_HOSTNAME"); exists {
cfg.AuthHostName = authHostname
}
if authRealm, exists := os.LookupEnv("AUTH_REALM"); exists {
cfg.AuthRealm = authRealm
}
if authEmailClientID, exists := os.LookupEnv("AUTH_EMAIL_CLIENT_ID"); exists {
cfg.AuthEmailClientID = authEmailClientID
}
if authClientSecret, exists := os.LookupEnv("AUTH_CLIENT_SECRET"); exists {
cfg.AuthClientSecret = authClientSecret
}
if authEmailRedirectURI, exists := os.LookupEnv("AUTH_EMAIL_REDIRECT_URI"); exists {
cfg.AuthEmailRedirectURI = authEmailRedirectURI
}
if authEmailLifespan, exists := os.LookupEnv("AUTH_EMAIL_LIFESPAN"); exists {
if lifespan, err := strconv.Atoi(authEmailLifespan); err == nil {
cfg.AuthEmailLifespan = lifespan
}
}
if authEmailClientID, exists := os.LookupEnv("AUTH_EMAIL_CLIENT_ID"); exists {
cfg.AuthEmailClientID = authEmailClientID
}
if authEmailClientID, exists := os.LookupEnv("AUTH_EMAIL_CLIENT_ID"); exists {
cfg.AuthEmailClientID = authEmailClientID
}
if fhirBaseUrl, exists := os.LookupEnv("FHIR_BASE_URL"); exists {
cfg.FhirBaseUrl = fhirBaseUrl
}
if vhlBaseUrl, exists := os.LookupEnv("VHL_BASE_URL"); exists {
cfg.VhlBaseUrl = vhlBaseUrl
}
if apiSwagger, exists := os.LookupEnv("API_SWAGGER"); exists {
cfg.APISwagger = apiSwagger == "true"
}
if logLevel, exists := os.LookupEnv("LOG_LEVEL"); exists {
cfg.LogLevel = logLevel
}
return cfg
}