'Get an event from the database by event_id.
Args:
event_id (str): The event_id of the event 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.
allow_none (bool): If True, return None if no event found, if
False throw an exception.
Returns:
Deferred : A FrozenEvent.'

@defer.inlineCallbacks
def get_event(self, event_id, check_redacted=True, get_prev_content=False, allow_rejected=False, allow_none=False):

    events = (yield self._get_events([event_id], check_redacted=check_redacted, get_prev_content=get_prev_content, allow_rejected=allow_rejected))
    if ((not events) and (not allow_none)):
        raise SynapseError(404, ('Could    not    find    event    %s' % (event_id,)))
    defer.returnValue((events[0] if events else None))
