Add storage method have_events
This commit is contained in:
parent
ca65a9d03e
commit
3b9cc882a5
|
@ -422,6 +422,35 @@ class DataStore(RoomMemberStore, RoomStore,
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def have_events(self, event_ids):
|
||||||
|
"""Given a list of event ids, check if we have already processed them.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
dict: Has an entry for each event id we already have seen. Maps to
|
||||||
|
the rejected reason string if we rejected the event, else maps to
|
||||||
|
None.
|
||||||
|
"""
|
||||||
|
def f(txn):
|
||||||
|
sql = (
|
||||||
|
"SELECT e.event_id, reason FROM events as e "
|
||||||
|
"LEFT JOIN rejections as r ON e.event_id = r.event_id "
|
||||||
|
"WHERE event_id = ?"
|
||||||
|
)
|
||||||
|
|
||||||
|
res = {}
|
||||||
|
for event_id in event_ids:
|
||||||
|
txn.execute(sql, (event_id,))
|
||||||
|
row = txn.fetchone()
|
||||||
|
if row:
|
||||||
|
_, rejected = row
|
||||||
|
res[event_id] = rejected
|
||||||
|
|
||||||
|
return res
|
||||||
|
|
||||||
|
return self.runInteraction(
|
||||||
|
"have_events", f,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def schema_path(schema):
|
def schema_path(schema):
|
||||||
""" Get a filesystem path for the named database schema
|
""" Get a filesystem path for the named database schema
|
||||||
|
|
Loading…
Reference in New Issue