package models
import "theskyscape.com/repo/skykit"
// Settings represents application settings
type Settings struct {
skykit.Model
Key string
Value string
}
// GetSetting retrieves a setting value by key
func GetSetting(key string) (string, error) {
setting, err := SettingsDB.First(`WHERE Key = ?`, key)
if err != nil {
return "", err
}
if setting == nil {
return "", nil
}
return setting.Value, nil
}
// SetSetting creates or updates a setting
func SetSetting(key, value string) (err error) {
setting, err := SettingsDB.Get(key)
if err != nil {
_, err = SettingsDB.Insert(&Settings{
Model: skykit.Model{ID: key},
Key: key,
Value: value,
})
} else {
setting.Value = value
err = SettingsDB.Update(setting)
}
return err
}
// GetFriendliAPIKey is a helper to get the Friendli API key
func GetFriendliAPIKey() (string, error) {
return GetSetting("friendli_api_key")
}
// SetFriendliAPIKey is a helper to set the Friendli API key
func SetFriendliAPIKey(apiKey string) error {
return SetSetting("friendli_api_key", apiKey)
}