~didrocks/unity/altf10

« back to all changes in this revision

Viewing changes to grackle/client.py

  • Committer: Curtis Hovey
  • Date: 2012-03-16 19:37:09 UTC
  • Revision ID: curtis.hovey@canonical.com-20120316193709-oa33ido3h6hpo0bu
Factor-out message methods.

Show diffs side-by-side

added added

removed removed

Lines of Context:
47
47
        connection.request(method, url, body)
48
48
        return connection.getresponse()
49
49
 
50
 
    def message_url(self, archive_id, message_id, query):
51
 
        """Return the URL for a message
52
 
 
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.
55
 
        """
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, ''))
59
 
 
60
 
    def _method_message(self, method, archive_id, message_id,
61
 
                        query, body=None):
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()
67
 
 
68
50
    def put_archive(self, archive_id, mbox=None):
69
51
        """Create an archive.
70
52
 
172
154
            'hidden': hidden,
173
155
            }
174
156
        query = {'parameters': simplejson.dumps(parameters)}
175
 
        response = self._method_message('POST', archive_id, message_id, query)
 
157
        path = '%s/%s' % (archive_id, message_id)
 
158
        response = self._method_archive('POST', path, query)
176
159
        if response.status == httplib.BAD_REQUEST:
177
160
            if response.reason == MessageIdNotFound.__doc__:
178
161
                raise MessageIdNotFound