relay/internal/models/config_key.go
Tyr Mactire 3139c19ea1
Robots (#66)
* robots
* configurable indexing

* drop adminHomeFormTelegramEnabled

* remove constraint

* drop settingsFormTelegramEnabled

* drop settingsFormTelegramChatID

* process error
2022-08-12 19:52:19 -07:00

70 lines
1.4 KiB
Go

package models
import (
"github.com/sirupsen/logrus"
"strconv"
)
type ConfigKey string
const (
ConfigHomeBody ConfigKey = `home.body`
ConfigRobotsAllowIndexing ConfigKey = `robots.allow-indexing`
ConfigTelegramEnabled ConfigKey = `telegram.enabled`
ConfigTelegramToken ConfigKey = `telegram.token`
ConfigUserTelegramEnabled ConfigKey = `user.telegram.enabled`
ConfigUserTelegramChatID ConfigKey = `user.telegram.chat_id`
)
var configKeyDefault = map[ConfigKey]string{
ConfigRobotsAllowIndexing: "false",
ConfigTelegramEnabled: "false",
ConfigUserTelegramEnabled: "false",
}
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)
}