summary refs log tree commit diff
path: root/synapse/api
diff options
context:
space:
mode:
authorPaul "LeoNerd" Evans <paul@matrix.org>2015-01-27 17:48:13 +0000
committerPaul "LeoNerd" Evans <paul@matrix.org>2015-01-27 17:48:13 +0000
commit54e513b4e6b5c644b9a2aeb02cef8258e87ae26a (patch)
tree2017cda9f2180bbf97eae8eae45e29b28107a9cb /synapse/api
parentHave the Filtering API return Deferreds, so we can do the Datastore implement... (diff)
downloadsynapse-54e513b4e6b5c644b9a2aeb02cef8258e87ae26a.tar.xz
Move storage of user filters into real datastore layer; now have to mock it out in the REST-level tests
Diffstat (limited to 'synapse/api')
-rw-r--r--synapse/api/filtering.py27
1 files changed, 4 insertions, 23 deletions
diff --git a/synapse/api/filtering.py b/synapse/api/filtering.py
index 014e2e1fc9..20b6951d47 100644
--- a/synapse/api/filtering.py
+++ b/synapse/api/filtering.py
@@ -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)
-
-        if not filters or filter_id >= len(filters):
-            raise KeyError()
+        return self.store.get_user_filter(user_localpart, filter_id)
 
-        # 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