diff options
author | Mark Haines <mark.haines@matrix.org> | 2014-08-27 11:19:37 +0100 |
---|---|---|
committer | Mark Haines <mark.haines@matrix.org> | 2014-08-27 11:19:37 +0100 |
commit | bf05218c4b1740cdc5477cadbc36f0575e2dcd51 (patch) | |
tree | ced8ed09e18afb11e97734959150b8ef7f0db833 /synapse/handlers/events.py | |
parent | Fold federation/handler into handlers/federation (diff) | |
parent | Added support for GET /events/$eventid with auth checks. (diff) | |
download | synapse-bf05218c4b1740cdc5477cadbc36f0575e2dcd51.tar.xz |
Merge branch 'develop' into storage_transactions
Diffstat (limited to 'synapse/handlers/events.py')
-rw-r--r-- | synapse/handlers/events.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/synapse/handlers/events.py b/synapse/handlers/events.py index 6bb797caf2..1bd173acd8 100644 --- a/synapse/handlers/events.py +++ b/synapse/handlers/events.py @@ -144,3 +144,29 @@ class EventStreamHandler(BaseHandler): self._stop_timer_per_user[auth_user] = ( self.clock.call_later(5, _later) ) + + +class EventHandler(BaseHandler): + + @defer.inlineCallbacks + def get_event(self, user, event_id): + """Retrieve a single specified event. + + Args: + user (synapse.types.UserID): The user requesting the event + event_id (str): The event ID to obtain. + Returns: + dict: An event, or None if there is no event matching this ID. + Raises: + SynapseError if there was a problem retrieving this event, or + AuthError if the user does not have the rights to inspect this + event. + """ + event = yield self.store.get_event(event_id) + + if not event: + defer.returnValue(None) + return + + yield self.auth.check(event, raises=True) + defer.returnValue(event) |