Mercurial > libervia-backend
diff src/core/sat_main.py @ 541:8b116fa42a31
core, bridge: waiting confirmation management (new getWaitingConf method)
author | Goffi <goffi@goffi.org> |
---|---|
date | Wed, 14 Nov 2012 20:24:28 +0100 |
parents | 2c4016921403 |
children | f25eef861b43 |
line wrap: on
line diff
--- a/src/core/sat_main.py Mon Nov 12 10:55:44 2012 +0100 +++ b/src/core/sat_main.py Wed Nov 14 20:24:28 2012 +0100 @@ -129,6 +129,7 @@ self.bridge.register("getLastResource", self.memory.getLastResource) self.bridge.register("getPresenceStatus", self.memory.getPresenceStatus) self.bridge.register("getWaitingSub", self.memory.getWaitingSub) + self.bridge.register("getWaitingConf", self.getWaitingConf) self.bridge.register("sendMessage", self.sendMessage) self.bridge.register("getConfig", self.memory.getConfig) self.bridge.register("setParam", self.setParam) @@ -452,6 +453,17 @@ ## jabber methods ## + + def getWaitingConf(self, profile_key=None): + assert(profile_key) + client = self.getClient(profile_key) + if not client: + raise ProfileNotInCacheError + ret = [] + for conf_id in client._waiting_conf: + conf_type, data = client._waiting_conf[conf_id][:2] + ret.append((conf_id, conf_type, data)) + return ret def sendMessage(self, to, msg, subject=None, mess_type='auto', profile_key='@DEFAULT@'): #FIXME: check validity of recipient @@ -635,8 +647,8 @@ if client._waiting_conf.has_key(conf_id): error (_("Attempt to register two callbacks for the same confirmation")) else: - client._waiting_conf[conf_id] = cb - self.bridge.askConfirmation(conf_type, conf_id, data, profile) + client._waiting_conf[conf_id] = (conf_type, data, cb) + self.bridge.askConfirmation(conf_id, conf_type, data, profile) def confirmationAnswer(self, conf_id, accepted, data, profile): @@ -646,9 +658,9 @@ raise ProfileUnknownError(_("Confirmation answer from a non-existant profile")) debug (_("Received confirmation answer for conf_id [%(conf_id)s]: %(success)s") % {'conf_id': conf_id, 'success':_("accepted") if accepted else _("refused")}) if not client._waiting_conf.has_key(conf_id): - error (_("Received an unknown confirmation")) + error (_("Received an unknown confirmation (%(id)s for %(profile)s)") % {'id': conf_id, 'profile': profile}) else: - cb = client._waiting_conf[conf_id] + cb = client._waiting_conf[conf_id][-1] del client._waiting_conf[conf_id] cb(conf_id, accepted, data, profile)