-
Notifications
You must be signed in to change notification settings - Fork 0
/
env.go
41 lines (33 loc) · 1.18 KB
/
env.go
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
package bootstrap
import (
"log"
"github.com/spf13/viper"
)
type Env struct {
AppEnv string `mapstructure:"APP_ENV"`
ServerAddress string `mapstructure:"SERVER_ADDRESS"`
ContextTimeout int `mapstructure:"CONTEXT_TIMEOUT"`
DBHost string `mapstructure:"DB_HOST"`
DBPort string `mapstructure:"DB_PORT"`
DBUser string `mapstructure:"DB_USER"`
DBPass string `mapstructure:"DB_PASS"`
DBName string `mapstructure:"DB_NAME"`
AccessTokenExpiryHour int `mapstructure:"ACCESS_TOKEN_EXPIRY_HOUR"`
RefreshTokenExpiryHour int `mapstructure:"REFRESH_TOKEN_EXPIRY_HOUR"`
AccessTokenSecret string `mapstructure:"ACCESS_TOKEN_SECRET"`
RefreshTokenSecret string `mapstructure:"REFRESH_TOKEN_SECRET"`
}
func NewEnv() *Env {
env := Env{}
viper.SetConfigFile(".env")
if err := viper.ReadInConfig(); err != nil {
log.Fatal("Can't find the file .env : ", err)
}
if err := viper.Unmarshal(&env); err != nil {
log.Fatal("Environment can't be loaded: ", err)
}
if env.AppEnv == "development" {
log.Println("The App is running in development env")
}
return &env
}