summaryrefslogtreecommitdiff
path: root/sleekxmpp/plugins/xep_0332/stanza/response.py
diff options
context:
space:
mode:
authorMike Taylor <bear42@gmail.com>2015-04-28 22:44:27 -0400
committerMike Taylor <bear42@gmail.com>2015-04-28 22:44:27 -0400
commit192b7e0349429839261eb4d1d42d8f75933dc0c2 (patch)
treeecb5905d19a563b4e6fe864afd0122321bf7cea1 /sleekxmpp/plugins/xep_0332/stanza/response.py
parent842157a6cc25d9e85e6e31b3cf3349ba83ece101 (diff)
parent80b60fc0483b21c8d5829b61cabbf9b46aa2c2fb (diff)
downloadslixmpp-192b7e0349429839261eb4d1d42d8f75933dc0c2.tar.gz
slixmpp-192b7e0349429839261eb4d1d42d8f75933dc0c2.tar.bz2
slixmpp-192b7e0349429839261eb4d1d42d8f75933dc0c2.tar.xz
slixmpp-192b7e0349429839261eb4d1d42d8f75933dc0c2.zip
Merge pull request #345 from sangeeths/xep_0332
XEP-0332: HTTP over XMPP transport
Diffstat (limited to 'sleekxmpp/plugins/xep_0332/stanza/response.py')
-rw-r--r--sleekxmpp/plugins/xep_0332/stanza/response.py61
1 files changed, 61 insertions, 0 deletions
diff --git a/sleekxmpp/plugins/xep_0332/stanza/response.py b/sleekxmpp/plugins/xep_0332/stanza/response.py
new file mode 100644
index 00000000..0fc46de8
--- /dev/null
+++ b/sleekxmpp/plugins/xep_0332/stanza/response.py
@@ -0,0 +1,61 @@
+"""
+ SleekXMPP: The Sleek XMPP Library
+ Implementation of HTTP over XMPP transport
+ http://xmpp.org/extensions/xep-0332.html
+ Copyright (C) 2015 Riptide IO, sangeeth@riptideio.com
+ This file is part of SleekXMPP.
+
+ See the file LICENSE for copying permission.
+"""
+
+from sleekxmpp.xmlstream import ElementBase
+
+
+class Response(ElementBase):
+
+ """
+ When the HTTP Server responds, it does so by sending an `iq` stanza
+ response (type=`result`) back to the client containing the `resp` element.
+ Since response are asynchronous, and since multiple requests may be active
+ at the same time, responses may be returned in a different order than the
+ in which the original requests were made.
+
+ Examples:
+ <iq type='result' from='httpserver@clayster.com' to='httpclient@clayster.com/browser' id='2'>
+ <resp xmlns='urn:xmpp:http' version='1.1' statusCode='200' statusMessage='OK'>
+ <headers xmlns='http://jabber.org/protocol/shim'>
+ <header name='Date'>Fri, 03 May 2013 16:39:54GMT-4</header>
+ <header name='Server'>Clayster</header>
+ <header name='Content-Type'>text/turtle</header>
+ <header name='Content-Length'>...</header>
+ <header name='Connection'>Close</header>
+ </headers>
+ <data>
+ <text>
+ ...
+ </text>
+ </data>
+ </resp>
+ </iq>
+ """
+
+ name = 'response'
+ namespace = 'urn:xmpp:http'
+ interfaces = set(['code', 'message', 'version'])
+ plugin_attrib = 'resp'
+
+ def get_code(self):
+ code = self._get_attr('statusCode', None)
+ return int(code) if code is not None else code
+
+ def set_code(self, code):
+ self._set_attr('statusCode', str(code))
+
+ def get_message(self):
+ return self._get_attr('statusMessage', '')
+
+ def set_message(self, message):
+ self._set_attr('statusMessage', message)
+
+ def set_version(self, version='1.1'):
+ self._set_attr('version', version)