byte[] NewFriendship(Dictionary<string, object> request)
{
if (!VerifyServiceKey (request))
return FailureResult ();
// OK, can proceed
FriendInfo friend = new FriendInfo (request);
UUID friendID;
string tmp = string.Empty;
if (!HGUtil.ParseUniversalUserIdentifier (friend.Friend, out friendID, out tmp, out tmp, out tmp, out tmp))
return FailureResult ();
MainConsole.Instance.DebugFormat ("[HGFRIENDS HANDLER]: New friendship {0} {1}", friend.PrincipalID, friend.Friend);
// If the friendship already exists, return fail
List<FriendInfo> finfos = m_FriendsService.GetFriends (friend.PrincipalID);
foreach (FriendInfo finfo in finfos)
if (finfo.Friend.StartsWith (friendID.ToString ()))
return FailureResult ();
// the user needs to confirm when he gets home
bool success = m_FriendsService.StoreFriend (friend.PrincipalID, friend.Friend, 0);
if (success)
return SuccessResult ();
else
return FailureResult ();
}