Implement the friends data adaptor

slimupdates
Melanie 2010-02-05 12:31:29 +00:00
parent 0ab8dd61d7
commit b92cb6126d
4 changed files with 25 additions and 8 deletions

View File

@ -45,7 +45,7 @@ namespace OpenSim.Data
public interface IFriendsData
{
bool Store(FriendsData data);
bool Delete(UUID ownerID, UUID friendID);
FriendsData[] GetFriends(UUID owner);
bool Delete(UUID ownerID, string friend);
FriendsData[] GetFriends(UUID principalID);
}
}

View File

@ -38,19 +38,26 @@ namespace OpenSim.Data.MySQL
public class MySqlFriendsData : MySQLGenericTableHandler<FriendsData>, IFriendsData
{
public MySqlFriendsData(string connectionString, string realm)
: base(connectionString, realm, "Friends")
: base(connectionString, realm, "FriendsStore")
{
}
public bool Delete(UUID principalID, UUID friendID)
public bool Delete(UUID principalID, string friend)
{
// We need to delete the row where PrincipalID=principalID AND FriendID=firnedID
return false;
MySqlCommand cmd = new MySqlCommand();
cmd.CommandText = String.Format("delete from {0} where PrincipalID = ?PrincipalID and Friend = ?Friend", m_Realm);
cmd.Parameters.AddWithValue("?PrincipalID", principalID.ToString());
cmd.Parameters.AddWithValue("?Friend", friend);
ExecuteNonQuery(cmd);
return true;
}
public FriendsData[] GetFriends(UUID userID)
public FriendsData[] GetFriends(UUID principalID)
{
return Get("PrincipalID =\'" + userID.ToString() + "'");
return Get("PrincipalID", principalID.ToString());
}
}
}

View File

@ -0,0 +1,5 @@
BEGIN;
CREATE TABLE `Friends` (`PrincipalID` CHAR(36) NOT NULL, `Friend` VARCHAR(255) NOT NULL, `Flags` VARCHAR(16) NOT NULL DEFAULT 0, `Offered` VARCHAR(32) NOT NULL DEFAULT 0, PRIMARY KEY(`PrincipalID`, `Friend`), KEY(`PrincipalID`));
COMMIT;

View File

@ -0,0 +1,5 @@
BEGIN;
INSERT INTO `Friends` SELECT `ownerID`, `friendID`, `friendPerms`, 0 FROM `userfriends`;
COMMIT;