relay/internal/models/config_key.go

70 lines
1.4 KiB
Go
Raw Normal View History

2022-07-29 19:47:09 +00:00
package models
import (
"github.com/sirupsen/logrus"
"strconv"
)
2022-07-29 19:47:09 +00:00
type ConfigKey string
const (
2022-08-02 01:57:39 +00:00
ConfigHomeBody ConfigKey = `home.body`
ConfigRobotsAllowIndexing ConfigKey = `robots.allow-indexing`
2022-08-02 01:57:39 +00:00
ConfigTelegramEnabled ConfigKey = `telegram.enabled`
ConfigTelegramToken ConfigKey = `telegram.token`
ConfigUserTelegramEnabled ConfigKey = `user.telegram.enabled`
ConfigUserTelegramChatID ConfigKey = `user.telegram.chat_id`
2022-07-29 19:47:09 +00:00
)
var configKeyDefault = map[ConfigKey]string{
ConfigRobotsAllowIndexing: "false",
ConfigTelegramEnabled: "false",
ConfigUserTelegramEnabled: "false",
}
2022-07-29 19:47:09 +00:00
func (k ConfigKey) String() string {
return string(k)
}
func (k ConfigKey) DefaultValue() string {
d, ok := configKeyDefault[k]
if !ok {
logger.WithFields(logrus.Fields{
"func": "DefaultValue",
"key": string(k),
}).Warn("missing default")
return ""
}
return d
}
func (k ConfigKey) DefaultValueBool() bool {
value, err := strconv.ParseBool(k.DefaultValue())
if err != nil {
logger.WithFields(logrus.Fields{
"func": "DefaultValueBool",
"key": string(k),
}).Warnf("parsing bool: %s", err.Error())
return false
}
return value
}
func (k ConfigKey) DefaultValueInt() int {
value, err := strconv.ParseInt(k.DefaultValue(), 10, 0)
if err != nil {
logger.WithFields(logrus.Fields{
"func": "DefaultValueInt",
"key": string(k),
}).Warnf("parsing int: %s", err.Error())
return 0
}
return int(value)
}