Diff

core/rostermanager.lua @ 101:c690fa382743

Added some roster management functions
author Waqas Hussain <waqas20@gmail.com>
date Sun, 12 Oct 2008 17:40:03 +0500
parent 80:523ac742cc19
child 103:ebdb7875443e
line wrap: on
line diff
--- a/core/rostermanager.lua	Sun Oct 12 17:38:17 2008 +0500
+++ b/core/rostermanager.lua	Sun Oct 12 17:40:03 2008 +0500
@@ -14,7 +14,7 @@
 
 module "rostermanager"
 
-function getroster(username, host)
+--[[function getroster(username, host)
 	return { 
 			["mattj@localhost"] = true,
 			["tobias@getjabber.ath.cx"] = true,
@@ -22,7 +22,35 @@
 			["thorns@getjabber.ath.cx"] = true, 
 			["idw@getjabber.ath.cx"] = true, 
 		}
---	return datamanager.load(username, host, "roster") or {};
+	--return datamanager.load(username, host, "roster") or {};
+end]]
+
+function add_to_roster(roster, jid, item)
+	roster[jid] = item;
+	-- TODO implement
+end
+
+function remove_from_roster(roster, jid)
+	roster[jid] = nil;
+	-- TODO implement
+end
+
+function load_roster(host, username)
+	if hosts[host] and hosts[host].sessions[username] then
+		local roster = hosts[host].sessions[username].roster;
+		if not roster then
+			return hosts[host].sessions[username].roster = datamanger.load(username, host, "roster") or {};
+		end
+		return roster;
+	end
+	error("Attempt to load roster for non-loaded user"); --return nil;
+end
+
+function save_roster(host, username)
+	if hosts[host] and hosts[host].sessions[username] and hosts[host].sessions[username].roster then
+		return datamanager.save(username, host, "roster", hosts[host].sessions[username].roster);
+	end
+	return nil;
 end
 
 return _M;
\ No newline at end of file