From 8082931484f147189186974d0dfd7a45b8e9563b Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 8 Nov 2025 16:44:28 +0900 Subject: refactor(backend): Centralize environment variable loading in config.go --- backend/config.go | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 backend/config.go (limited to 'backend/config.go') diff --git a/backend/config.go b/backend/config.go new file mode 100644 index 0000000..c66100e --- /dev/null +++ b/backend/config.go @@ -0,0 +1,35 @@ +package main + +import ( + "errors" + "os" +) + +var ( + ErrNoSessionSecretEnvVar = errors.New("FEEDAKA_SESSION_SECRET environment variable is not set") +) + +type Config struct { + Port string + SessionSecret string + DevNonSecureCookie bool +} + +func LoadConfig() (*Config, error) { + port := os.Getenv("FEEDAKA_PORT") + sessionSecret := os.Getenv("FEEDAKA_SESSION_SECRET") + devNonSecureCookie := os.Getenv("FEEDAKA_DEV_NON_SECURE_COOKIE") + + if port == "" { + port = "8080" + } + if sessionSecret == "" { + return nil, ErrNoSessionSecretEnvVar + } + + return &Config{ + Port: port, + SessionSecret: sessionSecret, + DevNonSecureCookie: devNonSecureCookie == "1", + }, nil +} -- cgit v1.2.3-70-g09d2