all repos

onasty @ cd94b5c1238f63c87e4906cc492be0c70ae0cec7

a one-time notes service

onasty/mailer/config.go (view raw)

Smirnov Oleksandr Smirnov Oleksandr
ss2316544@gmail.com
feat: mailer service (#55)..., 1 year ago
1
package main
2
3
import "os"
4
5
type Config struct {
6
	AppURL        string
7
	NatsURL       string
8
	MailgunFrom   string
9
	MailgunDomain string
10
	MailgunAPIKey string
11
12
	LogLevel    string
13
	LogFormat   string
14
	LogShowLine bool
15
16
	MetricsEnabled bool
17
	MetricsPort    string
18
}
19
20
func NewConfig() *Config {
21
	return &Config{
22
		AppURL:         getenvOrDefault("APP_URL", ""),
23
		NatsURL:        getenvOrDefault("NATS_URL", ""),
24
		MailgunFrom:    getenvOrDefault("MAILGUN_FROM", ""),
25
		MailgunDomain:  getenvOrDefault("MAILGUN_DOMAIN", ""),
26
		MailgunAPIKey:  getenvOrDefault("MAILGUN_API_KEY", ""),
27
		LogLevel:       getenvOrDefault("LOG_LEVEL", "debug"),
28
		LogFormat:      getenvOrDefault("LOG_FORMAT", "json"),
29
		LogShowLine:    getenvOrDefault("LOG_SHOW_LINE", "true") == "true",
30
		MetricsPort:    getenvOrDefault("METRICS_PORT", ""),
31
		MetricsEnabled: getenvOrDefault("METRICS_ENABLED", "true") == "true",
32
	}
33
}
34
35
func getenvOrDefault(key, def string) string {
36
	if v, ok := os.LookupEnv(key); ok {
37
		return v
38
	}
39
	return def
40
}