Mercurial > libervia-backend
diff sat/plugins/plugin_exp_events.py @ 3040:fee60f17ebac
jp: jp asyncio port:
/!\ this commit is huge. Jp is temporarily not working with `dbus` bridge /!\
This patch implements the port of jp to asyncio, so it is now correctly using the bridge
asynchronously, and it can be used with bridges like `pb`. This also simplify the code,
notably for things which were previously implemented with many callbacks (like pagination
with RSM).
During the process, some behaviours have been modified/fixed, in jp and backends, check
diff for details.
author | Goffi <goffi@goffi.org> |
---|---|
date | Wed, 25 Sep 2019 08:56:41 +0200 |
parents | ab2696e34d29 |
children | 3c924cb207d9 |
line wrap: on
line diff
--- a/sat/plugins/plugin_exp_events.py Wed Sep 25 08:53:38 2019 +0200 +++ b/sat/plugins/plugin_exp_events.py Wed Sep 25 08:56:41 2019 +0200 @@ -381,7 +381,7 @@ if register: yield self.register( - client, service, None, {}, node, event_id, event_elt, creator=True) + client, None, {}, service, node, event_id, item_elt, creator=True) defer.returnValue(node) def _eventModify(self, service, node, id_, timestamp_update, data_update, @@ -447,24 +447,29 @@ events.append((timestamp, data)) defer.returnValue(events) - def _eventInviteeGet(self, service, node, profile_key): + def _eventInviteeGet(self, service, node, invitee_jid_s, profile_key): service = jid.JID(service) if service else None node = node if node else NS_EVENT client = self.host.getClient(profile_key) - return self.eventInviteeGet(client, service, node) + invitee_jid = jid.JID(invitee_jid_s) if invitee_jid_s else None + return self.eventInviteeGet(client, service, node, invitee_jid) @defer.inlineCallbacks - def eventInviteeGet(self, client, service, node): + def eventInviteeGet(self, client, service, node, invitee_jid=None): """Retrieve attendance from event node @param service(unicode, None): PubSub service - @param node(unicode): PubSub node of the event + @param node(unicode): PubSub node of the event's invitees + @param invitee_jid(jid.JId, None): jid of the invitee to retrieve (None to + retrieve profile's invitation). The bare jid correspond to the PubSub item id. @return (dict): a dict with current attendance status, an empty dict is returned if nothing has been answered yed """ + if invitee_jid is None: + invitee_jid = client.jid try: items, metadata = yield self._p.getItems( - client, service, node, item_ids=[client.jid.userhost()] + client, service, node, item_ids=[invitee_jid.userhost()] ) event_elt = next(items[0].elements(NS_EVENT, "invitee")) except (exceptions.NotFound, IndexError):