def about_topic(self, topic_id): """ Returns the messages about a topic """ path = "/messages/about_topic/%d" % extract_id(topic_id) return self._get_paged_messages(path, older_than, newer_than, limit, threaded)
def find(self, message_id): """ Returns the message identified by the given message_id. """ path = "/messages/%d" % extract_id(message_id) return self._get_paged_messages(path, older_than, newer_than, limit, threaded)
def find(self, message_id): """ Returns the message identified by the given message_id. """ path = "/messages/%d" % extract_id(message_id) return self._get_paged_messages(path, older_than=None, newer_than=None, limit=None, threaded=None)
def about_topic(self, topic_id): """ Returns the messages about a topic """ path = "/messages/about_topic/%d" % extract_id(topic_id) return self._get_paged_messages(path, older_than=None, newer_than=None, limit=None, threaded=None)
def from_group(self, group_id, older_than=None, newer_than=None, limit=None, threaded=None): """ Returns messages from specific group, specified with `group_id`. See the :meth:`all` method for a description of the keyword arguments. """ path = "/messages/in_group/%d" % extract_id(group_id) return self._get_paged_messages(path, older_than, newer_than, limit, threaded)
def join(self, group_id): """ Join the group identified by the given group_id. Return True """ path = "/group_memberships" group_id = extract_id(group_id) return self._client.post( path, **self._argument_converter(group_id=group_id, ))
def in_group(self, group_id, page=None): """ Returns all the users belonging to the group identified by the given group_id. Use the page parameter to enable pagination and retrieve a specific page of users. """ path = "/users/in_group/%d" % extract_id(group_id) return self._client.get(path, **self._argument_converter(page=page, ))
def leave(self, group_id): """ Leave the group identified by the given group_id. Return True """ path = "/group_memberships" group_id = extract_id(group_id) return self._client.delete( path, **self._argument_converter(group_id=group_id, ))
def leave(self, group_id): """ Leave the group identified by the given group_id. Return True """ path = "/group_memberships" group_id = extract_id(group_id) return self._client.delete(path, **self._argument_converter( group_id=group_id, ))
def join(self, group_id): """ Join the group identified by the given group_id. Return True """ path = "/group_memberships" group_id = extract_id(group_id) return self._client.post(path, **self._argument_converter( group_id=group_id, ))
def in_thread(self, thread_id, older_than=None, newer_than=None, limit=None, threaded=None): """ Returns messages that belong to the thread identified by thread_id. See the :meth:`all` method for a description of the keyword arguments. """ path = "/messages/in_thread/%d" % extract_id(thread_id) return self._get_paged_messages(path, older_than, newer_than, limit, threaded)
def from_user(self, user_id, older_than=None, newer_than=None, limit=None, threaded=None): """ Returns messages that were posted by the user identified by user_id. See the :meth:`all` method for a description of the keyword arguments. """ path = "/messages/from_user/%d" % extract_id(user_id) return self._get_paged_messages(path, older_than, newer_than, limit, threaded)
def in_group(self, group_id, page=None): """ Returns all the users belonging to the group identified by the given group_id. Use the page parameter to enable pagination and retrieve a specific page of users. """ path = "/users/in_group/%d" % extract_id(group_id) return self._client.get(path, **self._argument_converter( page=page, ))
def __call__(self, arguments): """ Attempts to extract an ID from the value of any key that matches the pattern that was provided to the initialiser. e.g. With the default pattern of '^.*_id$' {"foo_id": {"id": 3}} becomes {"foo_id": 3} """ result = arguments.copy() for key in arguments: if self._key_matcher.match(key): result[key] = extract_id(arguments[key]) return result
def from_topic(self, topic_id, older_than=None, newer_than=None, limit=None, threaded=None): """ Returns messages from specific group, specified with `group_id`. See the :meth:`all` method for a description of the keyword arguments. """ path = "/messages/from_topic/%d" % extract_id(topic_id) return self._client.get(path, **self._argument_converter( older_than=older_than, newer_than=newer_than, limit=limit, threaded=threaded, ))
def from_group(self, group_id, older_than=None, newer_than=None, limit=None, threaded=None): """ Returns messages from specific group, specified with `group_id`. See the :meth:`all` method for a description of the keyword arguments. """ path = "/messages/in_group/%d" % extract_id(group_id) return self._client.get(path, **self._argument_converter( older_than=older_than, newer_than=newer_than, limit=limit, threaded=threaded, ))
def from_user(self, user_id, older_than=None, newer_than=None, limit=None, threaded=None): """ Returns messages that were posted by the user identified by user_id. See the :meth:`all` method for a description of the keyword arguments. """ path = "/messages/from_user/%d" % extract_id(user_id) return self._client.get(path, **self._argument_converter( older_than=older_than, newer_than=newer_than, limit=limit, threaded=threaded, ))
def in_thread(self, thread_id, older_than=None, newer_than=None, limit=None, threaded=None): """ Returns messages that belong to the thread identified by thread_id. See the :meth:`all` method for a description of the keyword arguments. """ path = "/messages/in_thread/%d" % extract_id(thread_id) return self._client.get(path, **self._argument_converter( older_than=older_than, newer_than=newer_than, limit=limit, threaded=threaded, ))
def delete(self, message_id): """ Deletes the message identified by message_id. """ return self._client.delete("/messages/%d" % extract_id(message_id))
def find(self, message_id): """ Returns the message identified by the given message_id. """ path = "/messages/%d" % extract_id(message_id) return self._client.get(path)
def _user_path(self, user_id): return "/users/%d" % extract_id(user_id)
def _group_path(self, group_id): return "/groups/%d" % extract_id(group_id)
def find(self, message_id): """ Returns the message identified by the given message_id. """ return self._client.get("/messages/%d" % extract_id(message_id))
def test_extraction_from_dict(self): object_id = extract_id({"id": 17}) self.assertEquals(17, object_id)
def test_extraction_from_attribute(self): object_id = extract_id(GenericModel({"id": 21})) self.assertEquals(21, object_id)
def test_fallback_when_extraction_fails(self): object_id = extract_id(37) self.assertEquals(37, object_id)