Merge pull request #492 from matrix-org/rav/event_context_shiz_release
Add 'event' result to 'context' endpoint
This commit is contained in:
commit
7ee1879ed4
|
@ -864,28 +864,39 @@ class RoomContextHandler(BaseHandler):
|
||||||
(excluding state).
|
(excluding state).
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
dict
|
dict, or None if the event isn't found
|
||||||
"""
|
"""
|
||||||
before_limit = math.floor(limit/2.)
|
before_limit = math.floor(limit/2.)
|
||||||
after_limit = limit - before_limit
|
after_limit = limit - before_limit
|
||||||
|
|
||||||
now_token = yield self.hs.get_event_sources().get_current_token()
|
now_token = yield self.hs.get_event_sources().get_current_token()
|
||||||
|
|
||||||
|
def filter_evts(events):
|
||||||
|
return self._filter_events_for_client(
|
||||||
|
user.to_string(),
|
||||||
|
events,
|
||||||
|
is_guest=is_guest)
|
||||||
|
|
||||||
|
event = yield self.store.get_event(event_id, get_prev_content=True,
|
||||||
|
allow_none=True)
|
||||||
|
if not event:
|
||||||
|
defer.returnValue(None)
|
||||||
|
return
|
||||||
|
|
||||||
|
filtered = yield(filter_evts([event]))
|
||||||
|
if not filtered:
|
||||||
|
raise AuthError(
|
||||||
|
403,
|
||||||
|
"You don't have permission to access that event."
|
||||||
|
)
|
||||||
|
|
||||||
results = yield self.store.get_events_around(
|
results = yield self.store.get_events_around(
|
||||||
room_id, event_id, before_limit, after_limit
|
room_id, event_id, before_limit, after_limit
|
||||||
)
|
)
|
||||||
|
|
||||||
results["events_before"] = yield self._filter_events_for_client(
|
results["events_before"] = yield filter_evts(results["events_before"])
|
||||||
user.to_string(),
|
results["events_after"] = yield filter_evts(results["events_after"])
|
||||||
results["events_before"],
|
results["event"] = event
|
||||||
is_guest=is_guest,
|
|
||||||
)
|
|
||||||
|
|
||||||
results["events_after"] = yield self._filter_events_for_client(
|
|
||||||
user.to_string(),
|
|
||||||
results["events_after"],
|
|
||||||
is_guest=is_guest,
|
|
||||||
)
|
|
||||||
|
|
||||||
if results["events_after"]:
|
if results["events_after"]:
|
||||||
last_event_id = results["events_after"][-1].event_id
|
last_event_id = results["events_after"][-1].event_id
|
||||||
|
|
|
@ -402,10 +402,16 @@ class RoomEventContext(ClientV1RestServlet):
|
||||||
user, room_id, event_id, limit, is_guest
|
user, room_id, event_id, limit, is_guest
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if not results:
|
||||||
|
raise SynapseError(
|
||||||
|
404, "Event not found.", errcode=Codes.NOT_FOUND
|
||||||
|
)
|
||||||
|
|
||||||
time_now = self.clock.time_msec()
|
time_now = self.clock.time_msec()
|
||||||
results["events_before"] = [
|
results["events_before"] = [
|
||||||
serialize_event(event, time_now) for event in results["events_before"]
|
serialize_event(event, time_now) for event in results["events_before"]
|
||||||
]
|
]
|
||||||
|
results["event"] = serialize_event(results["event"], time_now)
|
||||||
results["events_after"] = [
|
results["events_after"] = [
|
||||||
serialize_event(event, time_now) for event in results["events_after"]
|
serialize_event(event, time_now) for event in results["events_after"]
|
||||||
]
|
]
|
||||||
|
|
Loading…
Reference in New Issue