summary refs log tree commit diff
path: root/synapse/storage
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2016-03-22 15:31:13 +0000
committerErik Johnston <erik@matrix.org>2016-03-22 16:06:04 +0000
commit99f929f36b396b7152b3840c11e8debc5505f673 (patch)
treea9114efc5467d6cade40cdd55affc817042614f9 /synapse/storage
parentMeasure StateHandler._resolve_events (diff)
downloadsynapse-99f929f36b396b7152b3840c11e8debc5505f673.tar.xz
Make StateHandler._state_cache only store event_ids.
Diffstat (limited to '')
-rw-r--r--synapse/storage/events.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/synapse/storage/events.py b/synapse/storage/events.py
index e444b64cee..584e659d4a 100644
--- a/synapse/storage/events.py
+++ b/synapse/storage/events.py
@@ -151,6 +151,31 @@ class EventsStore(SQLBaseStore):
 
         defer.returnValue(events[0] if events else None)
 
+    @defer.inlineCallbacks
+    def get_events(self, event_ids, check_redacted=True,
+                   get_prev_content=False, allow_rejected=False):
+        """Get events from the database
+
+        Args:
+            event_ids (list): The event_ids of the events to fetch
+            check_redacted (bool): If True, check if event has been redacted
+                and redact it.
+            get_prev_content (bool): If True and event is a state event,
+                include the previous states content in the unsigned field.
+            allow_rejected (bool): If True return rejected events.
+
+        Returns:
+            Deferred : Dict from event_id to event.
+        """
+        events = yield self._get_events(
+            event_ids,
+            check_redacted=check_redacted,
+            get_prev_content=get_prev_content,
+            allow_rejected=allow_rejected,
+        )
+
+        defer.returnValue({e.event_id: e for e in events})
+
     @log_function
     def _persist_event_txn(self, txn, event, context,
                            is_new_state=True, current_state=None):