blob: 36b61a86f682152f821659e9b7bc0e388262b323 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
package config
import (
"log/slog"
"os"
"github.com/spf13/viper"
)
type Config struct {
ServerConfig ServerConfig `mapstructure:"SERVICE"`
BaseURL string `mapstructure:"BASE_URL"`
SessionLifetime int `mapstructure:"SESSION_LIFETIME_SECONDS"`
DBURI string `mapstructure:"DBURI"`
CookieSecret string `mapstructure:"COOKIE_SECRET"`
}
type ServerConfig struct {
Host string `mapstructure:"HOST"`
Port string `mapstructure:"PORT"`
}
// LoadConfig Load server configuration from the yaml file
func LoadConfig(viperConf *viper.Viper) Config {
logger := slog.New(slog.NewJSONHandler(os.Stdout, nil))
var config Config
err := viperConf.Unmarshal(&config)
if err != nil {
logger.Error("Unable to decode configuration file", "error", err)
}
return config
}
// OpenConfig open config file
func OpenConfig() {
logger := slog.New(slog.NewJSONHandler(os.Stdout, nil))
viper.SetConfigType("yml")
viper.SetConfigName("config")
viper.SetEnvPrefix("CFG")
err := viper.ReadInConfig() // Find and read the config file
if err != nil { // Handle errors reading the config file
logger.Error("Unable to read configuration file", "error", err)
}
}
|