plugin invitations: added invitationList command
This commit is contained in:
parent
3ecb61f064
commit
08afc150c3
1 changed files with 22 additions and 1 deletions
|
|
@ -80,6 +80,9 @@ class InvitationsPlugin(object):
|
|||
host.bridge.addMethod("invitationModify", ".plugin", in_sign='sa{ss}b', out_sign='',
|
||||
method=self._modify,
|
||||
async=True)
|
||||
host.bridge.addMethod("invitationList", ".plugin", in_sign='s', out_sign='a{sa{ss}}',
|
||||
method=self._list,
|
||||
async=True)
|
||||
|
||||
def checkExtra(self, extra):
|
||||
if EXTRA_RESERVED.intersection(extra):
|
||||
|
|
@ -103,6 +106,7 @@ class InvitationsPlugin(object):
|
|||
d = self.create(**kwargs)
|
||||
def serialize(data):
|
||||
data[KEY_JID] = data[KEY_JID].full()
|
||||
return data
|
||||
d.addCallback(serialize)
|
||||
return d
|
||||
|
||||
|
|
@ -270,7 +274,7 @@ class InvitationsPlugin(object):
|
|||
log.warning(_(u"Not all arguments have been consumed: {}").format(kwargs))
|
||||
|
||||
extra[KEY_ID] = id_
|
||||
extra[KEY_JID] = jid
|
||||
extra[KEY_JID] = jid_
|
||||
defer.returnValue(extra)
|
||||
|
||||
def get(self, id_):
|
||||
|
|
@ -313,3 +317,20 @@ class InvitationsPlugin(object):
|
|||
d = self.invitations[id_]
|
||||
d.addCallback(gotCurrentData)
|
||||
return d
|
||||
|
||||
def _list(self, profile=C.PROF_KEY_NONE):
|
||||
return self.list(profile)
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def list(self, profile=C.PROF_KEY_NONE):
|
||||
"""List invitations
|
||||
|
||||
@param profile(unicode): return invitation linked to this profile only
|
||||
C.PROF_KEY_NONE: don't filter invitations
|
||||
@return list(unicode): invitations uids
|
||||
"""
|
||||
invitations = yield self.invitations.items()
|
||||
if profile != C.PROF_KEY_NONE:
|
||||
invitations = {id_:data for id_, data in invitations.iteritems() if data.get(u'profile') == profile}
|
||||
|
||||
defer.returnValue(invitations)
|
||||
|
|
|
|||
Loading…
Reference in a new issue