mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-08-01 09:46:07 -04:00
Rearrange storage modules
This commit is contained in:
parent
532ebc4a82
commit
87db64b839
7 changed files with 493 additions and 515 deletions
|
@ -15,6 +15,8 @@
|
|||
|
||||
from ._base import SQLBaseStore
|
||||
|
||||
from twisted.internet import defer
|
||||
|
||||
import logging
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
@ -122,3 +124,33 @@ class StateStore(SQLBaseStore):
|
|||
},
|
||||
or_replace=True,
|
||||
)
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def get_current_state(self, room_id, event_type=None, state_key=""):
|
||||
del_sql = (
|
||||
"SELECT event_id FROM redactions WHERE redacts = e.event_id "
|
||||
"LIMIT 1"
|
||||
)
|
||||
|
||||
sql = (
|
||||
"SELECT e.*, (%(redacted)s) AS redacted FROM events as e "
|
||||
"INNER JOIN current_state_events as c ON e.event_id = c.event_id "
|
||||
"INNER JOIN state_events as s ON e.event_id = s.event_id "
|
||||
"WHERE c.room_id = ? "
|
||||
) % {
|
||||
"redacted": del_sql,
|
||||
}
|
||||
|
||||
if event_type and state_key is not None:
|
||||
sql += " AND s.type = ? AND s.state_key = ? "
|
||||
args = (room_id, event_type, state_key)
|
||||
elif event_type:
|
||||
sql += " AND s.type = ?"
|
||||
args = (room_id, event_type)
|
||||
else:
|
||||
args = (room_id, )
|
||||
|
||||
results = yield self._execute_and_decode("get_current_state", sql, *args)
|
||||
|
||||
events = yield self._parse_events(results)
|
||||
defer.returnValue(events)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue