-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.go
45 lines (36 loc) · 869 Bytes
/
config.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
42
43
44
45
package config
import (
"github.com/awlsring/texit/internal/app/ui/config"
)
type Config struct {
LogLevel string `yaml:"logLevel"`
Api config.ApiConfig `yaml:"api"`
Notification NotifierConfig `yaml:"notifier"`
Server ServerConfig `yaml:"server"`
Discord DiscordBotConfig `yaml:"discord"`
Tracker *TrackerConfig `yaml:"tracker"`
}
func (c *Config) Validate() error {
if c.LogLevel == "" {
c.LogLevel = "info"
}
if c.Tracker == nil {
c.Tracker = NewDefaultTrackerConfig()
}
if err := c.Tracker.Validate(); err != nil {
return err
}
if err := c.Api.Validate(); err != nil {
return err
}
if err := c.Server.Validate(); err != nil {
return err
}
if err := c.Discord.Validate(); err != nil {
return err
}
if err := c.Notification.Validate(); err != nil {
return err
}
return nil
}