|
@@ -458,10 +458,12 @@ class SQLBaseStore(object):
|
|
|
return [e for e in events if e]
|
|
|
|
|
|
def _get_event_txn(self, txn, event_id, check_redacted=True,
|
|
|
- get_prev_content=False):
|
|
|
+ get_prev_content=False, allow_rejected=False):
|
|
|
sql = (
|
|
|
- "SELECT internal_metadata, json, r.event_id FROM event_json as e "
|
|
|
+ "SELECT internal_metadata, json, r.event_id, reason "
|
|
|
+ "FROM event_json as e "
|
|
|
"LEFT JOIN redactions as r ON e.event_id = r.redacts "
|
|
|
+ "LEFT JOIN rejections as rej on rej.event_id = e.event_id "
|
|
|
"WHERE e.event_id = ? "
|
|
|
"LIMIT 1 "
|
|
|
)
|
|
@@ -473,13 +475,16 @@ class SQLBaseStore(object):
|
|
|
if not res:
|
|
|
return None
|
|
|
|
|
|
- internal_metadata, js, redacted = res
|
|
|
+ internal_metadata, js, redacted, rejected_reason = res
|
|
|
|
|
|
- return self._get_event_from_row_txn(
|
|
|
- txn, internal_metadata, js, redacted,
|
|
|
- check_redacted=check_redacted,
|
|
|
- get_prev_content=get_prev_content,
|
|
|
- )
|
|
|
+ if allow_rejected or not rejected_reason:
|
|
|
+ return self._get_event_from_row_txn(
|
|
|
+ txn, internal_metadata, js, redacted,
|
|
|
+ check_redacted=check_redacted,
|
|
|
+ get_prev_content=get_prev_content,
|
|
|
+ )
|
|
|
+ else:
|
|
|
+ return None
|
|
|
|
|
|
def _get_event_from_row_txn(self, txn, internal_metadata, js, redacted,
|
|
|
check_redacted=True, get_prev_content=False):
|