Move storage of user filters into real datastore layer; now have to mock it out in the REST-level tests

This commit is contained in:
Paul "LeoNerd" Evans 2015-01-27 17:48:13 +00:00
parent 059651efa1
commit 54e513b4e6
5 changed files with 79 additions and 27 deletions

View file

@ -16,37 +16,18 @@
from twisted.internet import defer
# TODO(paul)
_filters_for_user = {}
class Filtering(object):
def __init__(self, hs):
super(Filtering, self).__init__()
self.hs = hs
self.store = hs.get_datastore()
@defer.inlineCallbacks
def get_user_filter(self, user_localpart, filter_id):
filters = _filters_for_user.get(user_localpart, None)
return self.store.get_user_filter(user_localpart, filter_id)
if not filters or filter_id >= len(filters):
raise KeyError()
# trivial yield to make it a generator so d.iC works
yield
defer.returnValue(filters[filter_id])
@defer.inlineCallbacks
def add_user_filter(self, user_localpart, definition):
filters = _filters_for_user.setdefault(user_localpart, [])
filter_id = len(filters)
filters.append(definition)
# trivial yield, see above
yield
defer.returnValue(filter_id)
# TODO(paul): implement sanity checking of the definition
return self.store.add_user_filter(user_localpart, definition)
# TODO(paul): surely we should probably add a delete_user_filter or
# replace_user_filter at some point? There's no REST API specified for