46
47
connection.request(method, url, body)
47
48
return connection.getresponse()
50
def message_url(self, archive_id, message_id, query):
51
"""Return the URL for a message
53
:param archive_id: The id of the archive to generate the URL for.
54
:param query: The query to use in the URL, as a dict.
56
path = '/archive/%s/%s' % (quote(archive_id), quote(message_id))
57
query_string = urlencode(query)
58
return urlunparse(('http', self.netloc, path, '', query_string, ''))
60
def _method_message(self, method, archive_id, message_id,
62
"""Perform an HTTP method on a message's URL."""
63
url = self.message_url(archive_id, message_id, query)
64
connection = self._get_connection()
65
connection.request(method, url, body)
66
return connection.getresponse()
49
68
def put_archive(self, archive_id, mbox=None):
50
69
"""Create an archive.
147
166
raise ValueError('Bad request')
148
167
data = response.read()
149
168
return simplejson.loads(data)
170
def hide_message(self, archive_id, message_id, hidden):
174
query = {'parameters': simplejson.dumps(parameters)}
175
response = self._method_message('POST', archive_id, message_id, query)
176
if response.status == httplib.BAD_REQUEST:
177
if response.reason == MessageIdNotFound.__doc__:
178
raise MessageIdNotFound
179
data = response.read()
180
return simplejson.loads(data)