101 lines
1.7 KiB
Go
101 lines
1.7 KiB
Go
package settings
|
|
|
|
import (
|
|
"mapserver/mapobjectdb"
|
|
"strconv"
|
|
)
|
|
|
|
type DBSettings struct {
|
|
db mapobjectdb.DBAccessor
|
|
}
|
|
|
|
func New(db mapobjectdb.DBAccessor) Settings {
|
|
return &DBSettings{
|
|
db: db,
|
|
}
|
|
}
|
|
|
|
func (this *DBSettings) GetString(key string, defaultValue string) string {
|
|
str, err := this.db.GetSetting(key, defaultValue)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
return str
|
|
}
|
|
|
|
func (this *DBSettings) SetString(key string, value string) {
|
|
err := this.db.SetSetting(key, value)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
func (this *DBSettings) GetInt(key string, defaultValue int) int {
|
|
str, err := this.db.GetSetting(key, strconv.Itoa(defaultValue))
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
value, err := strconv.Atoi(str)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
return value
|
|
}
|
|
|
|
func (this *DBSettings) SetInt(key string, value int) {
|
|
err := this.db.SetSetting(key, strconv.Itoa(value))
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
func (this *DBSettings) GetInt64(key string, defaultValue int64) int64 {
|
|
str, err := this.db.GetSetting(key, strconv.FormatInt(defaultValue, 10))
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
value, err := strconv.ParseInt(str, 10, 64)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
return value
|
|
}
|
|
|
|
func (this *DBSettings) SetInt64(key string, value int64) {
|
|
err := this.db.SetSetting(key, strconv.FormatInt(value, 10))
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
func (this *DBSettings) GetBool(key string, defaultValue bool) bool {
|
|
defStr := "false"
|
|
if defaultValue {
|
|
defStr = "true"
|
|
}
|
|
|
|
str, err := this.db.GetSetting(key, defStr)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
return str == "true"
|
|
}
|
|
|
|
func (this *DBSettings) SetBool(key string, value bool) {
|
|
defStr := "false"
|
|
if value {
|
|
defStr = "true"
|
|
}
|
|
|
|
err := this.db.SetSetting(key, defStr)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}
|