This commit is contained in:
Erik Johnston 2015-10-28 14:05:50 +00:00
parent 5cb298c934
commit 56dbcd1524
2 changed files with 39 additions and 0 deletions

View File

@ -751,6 +751,19 @@ class RoomListHandler(BaseHandler):
class RoomContextHandler(BaseHandler): class RoomContextHandler(BaseHandler):
@defer.inlineCallbacks @defer.inlineCallbacks
def get_event_context(self, user, room_id, event_id, limit): def get_event_context(self, user, room_id, event_id, limit):
"""Retrieves events, pagination tokens and state around a given event
in a room.
Args:
user (UserID)
room_id (str)
event_id (str)
limit (int): The maximum number of events to return in total
(excluding state).
Returns:
dict
"""
before_limit = math.floor(limit/2.) before_limit = math.floor(limit/2.)
after_limit = limit - before_limit after_limit = limit - before_limit

View File

@ -439,6 +439,19 @@ class StreamStore(SQLBaseStore):
@defer.inlineCallbacks @defer.inlineCallbacks
def get_events_around(self, room_id, event_id, before_limit, after_limit): def get_events_around(self, room_id, event_id, before_limit, after_limit):
"""Retrieve events and pagination tokens around a given event in a
room.
Args:
room_id (str)
event_id (str)
before_limit (int)
after_limit (int)
Returns:
dict
"""
results = yield self.runInteraction( results = yield self.runInteraction(
"get_events_around", self._get_events_around_txn, "get_events_around", self._get_events_around_txn,
room_id, event_id, before_limit, after_limit room_id, event_id, before_limit, after_limit
@ -462,6 +475,19 @@ class StreamStore(SQLBaseStore):
}) })
def _get_events_around_txn(self, txn, room_id, event_id, before_limit, after_limit): def _get_events_around_txn(self, txn, room_id, event_id, before_limit, after_limit):
"""Retrieves event_ids and pagination tokens around a given event in a
room.
Args:
room_id (str)
event_id (str)
before_limit (int)
after_limit (int)
Returns:
dict
"""
results = self._simple_select_one_txn( results = self._simple_select_one_txn(
txn, txn,
"events", "events",