settings.go
go
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)
}
No comments yet.