mirror of
https://github.com/owncast/owncast.git
synced 2024-11-27 17:59:21 +03:00
60 lines
1.3 KiB
Go
60 lines
1.3 KiB
Go
package data
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/gob"
|
|
)
|
|
|
|
// ConfigEntry is the actual object saved to the database.
|
|
// The Value is encoded using encoding/gob.
|
|
type ConfigEntry struct {
|
|
Value interface{}
|
|
Key string
|
|
}
|
|
|
|
func (c *ConfigEntry) getStringSlice() ([]string, error) {
|
|
decoder := c.getDecoder()
|
|
var result []string
|
|
err := decoder.Decode(&result)
|
|
return result, err
|
|
}
|
|
|
|
func (c *ConfigEntry) getStringMap() (map[string]string, error) {
|
|
decoder := c.getDecoder()
|
|
var result map[string]string
|
|
err := decoder.Decode(&result)
|
|
return result, err
|
|
}
|
|
|
|
func (c *ConfigEntry) getString() (string, error) {
|
|
decoder := c.getDecoder()
|
|
var result string
|
|
err := decoder.Decode(&result)
|
|
return result, err
|
|
}
|
|
|
|
func (c *ConfigEntry) getNumber() (float64, error) {
|
|
decoder := c.getDecoder()
|
|
var result float64
|
|
err := decoder.Decode(&result)
|
|
return result, err
|
|
}
|
|
|
|
func (c *ConfigEntry) getBool() (bool, error) {
|
|
decoder := c.getDecoder()
|
|
var result bool
|
|
err := decoder.Decode(&result)
|
|
return result, err
|
|
}
|
|
|
|
func (c *ConfigEntry) getObject(result interface{}) error {
|
|
decoder := c.getDecoder()
|
|
err := decoder.Decode(result)
|
|
return err
|
|
}
|
|
|
|
func (c *ConfigEntry) getDecoder() *gob.Decoder {
|
|
valueBytes := c.Value.([]byte)
|
|
decoder := gob.NewDecoder(bytes.NewBuffer(valueBytes))
|
|
return decoder
|
|
}
|