seekia/internal/desires/myLocalDesires/myLocalDesires.go

81 lines
1.7 KiB
Go

// myLocalDesires provides functions to manage a user's mate desires
package myLocalDesires
import "seekia/internal/myDatastores/myMap"
import "seekia/internal/mySettings"
import "errors"
var myDesiresMapDatastore *myMap.MyMap
// This function must be called whenever we sign in to an app user
func InitializeMyDesiresDatastore()error{
newMyDesiresMapDatastore, err := myMap.CreateNewMap("MyDesires")
if (err != nil) { return err }
myDesiresMapDatastore = newMyDesiresMapDatastore
return nil
}
//Outputs:
// -bool: Desire exists
// -string: Desire data
// -error
func GetDesire(desireName string)(bool, string, error){
if (desireName == ""){
return false, "", errors.New("GetDesire called with empty desireName.")
}
exists, desireValue, err := myDesiresMapDatastore.GetMapEntry(desireName)
if (err != nil) { return false, "", err }
if (exists == false){
return false, "", nil
}
return true, desireValue, nil
}
func SetDesire(desireName string, content string)error{
if (desireName == ""){
return errors.New("SetDesire called with empty desireName.")
}
if (content == ""){
return errors.New("SetDesire called with empty content.")
}
err := myDesiresMapDatastore.SetMapEntry(desireName, content)
if (err != nil) { return err }
// Matches must be regenerated
err = mySettings.SetSetting("MatchesGeneratedStatus", "No")
if (err != nil) { return err }
return nil
}
func DeleteDesire(desireName string)error{
if (desireName == ""){
return errors.New("DeleteDesire called with empty desireName.")
}
err := myDesiresMapDatastore.DeleteMapEntry(desireName)
if (err != nil) { return err }
// Matches must be regenerated
err = mySettings.SetSetting("MatchesGeneratedStatus", "No")
if (err != nil) { return err }
return nil
}