tmp (wokkel.mam): recipient and sender are handled in MAM Request. TODO: MAMRequest should inherit from generic.Stanza, the same way as for PubSubRequest
This commit is contained in:
parent
e6a8b8ac85
commit
cab9a9645e
1 changed files with 13 additions and 12 deletions
|
|
@ -93,8 +93,9 @@ class MAMRequest(object):
|
|||
@ivar query_id: id to use to track the query
|
||||
@itype form: C{unicode}
|
||||
"""
|
||||
# FIXME: should be based on generic.Stanza
|
||||
|
||||
def __init__(self, form=None, rsm_=None, node=None, query_id=None):
|
||||
def __init__(self, form=None, rsm_=None, node=None, query_id=None, sender=None, recipient=None):
|
||||
if form is not None:
|
||||
assert form.formType == 'submit'
|
||||
assert form.formNamespace == NS_MAM
|
||||
|
|
@ -102,19 +103,23 @@ class MAMRequest(object):
|
|||
self.rsm = rsm_
|
||||
self.node = node
|
||||
self.query_id = query_id
|
||||
self.sender = sender
|
||||
self.recipient = recipient
|
||||
|
||||
@classmethod
|
||||
def fromElement(cls, element):
|
||||
def fromElement(cls, iq):
|
||||
"""Parse the DOM representation of a MAM <query/> request.
|
||||
|
||||
@param element: element containing a MAM <query/>.
|
||||
@type element: L{Element<twisted.words.xish.domish.Element>}
|
||||
@param iq: <iq/> element containing a MAM <query/>.
|
||||
@type iq: L{Element<twisted.words.xish.domish.Element>}
|
||||
|
||||
@return: MAMRequest instance.
|
||||
@rtype: L{MAMRequest}
|
||||
"""
|
||||
sender = jid.JID(iq.getAttribute('from'))
|
||||
recipient = jid.JID(iq.getAttribute('to'))
|
||||
try:
|
||||
query = element.elements(NS_MAM, 'query').next()
|
||||
query = iq.elements(NS_MAM, 'query').next()
|
||||
except StopIteration:
|
||||
raise MAMError("Can't find MAM <query/> in element")
|
||||
form = data_form.findForm(query, NS_MAM)
|
||||
|
|
@ -124,7 +129,7 @@ class MAMRequest(object):
|
|||
rsm_request = None
|
||||
node = query.getAttribute('node')
|
||||
query_id = query.getAttribute('queryid')
|
||||
return MAMRequest(form, rsm_request, node, query_id)
|
||||
return MAMRequest(form, rsm_request, node, query_id, sender, recipient)
|
||||
|
||||
def toElement(self):
|
||||
"""
|
||||
|
|
@ -350,15 +355,12 @@ class MAMClient(subprotocols.XMPPHandler):
|
|||
|
||||
class IMAMResource(Interface):
|
||||
|
||||
def onArchiveRequest(self, mam, requestor):
|
||||
def onArchiveRequest(self, mam):
|
||||
"""
|
||||
|
||||
@param mam: The MAM <query/> request.
|
||||
@type mam: L{MAMQueryReques<wokkel.mam.MAMRequest>}
|
||||
|
||||
@param requestor: JID of the requestor.
|
||||
@type requestor: L{JID<twisted.words.protocols.jabber.jid.JID>}
|
||||
|
||||
@return: The RSM answer.
|
||||
@rtype: L{RSMResponse<wokkel.rsm.RSMResponse>}
|
||||
"""
|
||||
|
|
@ -482,7 +484,6 @@ class MAMService(subprotocols.XMPPHandler, subprotocols.IQHandlerMixin):
|
|||
"""
|
||||
iq.handled = True
|
||||
mam_ = self._request_class.fromElement(iq)
|
||||
requestor = jid.JID(iq['from'])
|
||||
|
||||
# remove unsupported filters
|
||||
unsupported_fields = []
|
||||
|
|
@ -517,7 +518,7 @@ class MAMService(subprotocols.XMPPHandler, subprotocols.IQHandlerMixin):
|
|||
fin_elt.addChild(rsm_elt)
|
||||
return fin_elt
|
||||
|
||||
d = defer.maybeDeferred(self.resource.onArchiveRequest, mam_, requestor)
|
||||
d = defer.maybeDeferred(self.resource.onArchiveRequest, mam_)
|
||||
d.addCallback(cb)
|
||||
return d
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue