70 lines
1.5 KiB
Go
70 lines
1.5 KiB
Go
|
|
// mySettings provides functions to access a user's settings
|
|
|
|
package mySettings
|
|
|
|
import "seekia/internal/myDatastores/myMap"
|
|
|
|
import "errors"
|
|
|
|
var mySettingsMapDatastore *myMap.MyMap
|
|
|
|
// This function must be called whenever we sign in to an app user
|
|
func InitializeMySettingsDatastore()error{
|
|
|
|
newMySettingsMapDatastore, err := myMap.CreateNewMap("MySettings")
|
|
if (err != nil) { return err }
|
|
|
|
mySettingsMapDatastore = newMySettingsMapDatastore
|
|
|
|
return nil
|
|
}
|
|
|
|
//Outputs:
|
|
// -bool: Setting exists
|
|
// -string: Setting value
|
|
// -error
|
|
func GetSetting(settingName string) (bool, string, error){
|
|
|
|
if (settingName == ""){
|
|
return false, "", errors.New("GetSetting called with empty settingName.")
|
|
}
|
|
|
|
exists, settingString, err := mySettingsMapDatastore.GetMapEntry(settingName)
|
|
if (err != nil) { return false, "", err }
|
|
if (exists == false){
|
|
return false, "", nil
|
|
}
|
|
|
|
return true, settingString, nil
|
|
}
|
|
|
|
func SetSetting(settingName string, content string)error{
|
|
|
|
if (settingName == ""){
|
|
return errors.New("SetSetting called with empty SettingName.")
|
|
}
|
|
if (content == ""){
|
|
return errors.New("SetSetting called with empty content.")
|
|
}
|
|
|
|
err := mySettingsMapDatastore.SetMapEntry(settingName, content)
|
|
if (err != nil){ return err }
|
|
|
|
return nil
|
|
}
|
|
|
|
func DeleteSetting(settingName string)error{
|
|
|
|
if (settingName == ""){
|
|
return errors.New("DeleteSetting called with empty SettingName.")
|
|
}
|
|
|
|
err := mySettingsMapDatastore.DeleteMapEntry(settingName)
|
|
if (err != nil) { return err }
|
|
|
|
return nil
|
|
}
|
|
|
|
|
|
|