mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-07-28 05:15:26 -04:00
Add room details admin endpoint (#7317)
This commit is contained in:
parent
5bb26b7c4f
commit
a4a5ec4096
7 changed files with 165 additions and 1 deletions
|
@ -98,6 +98,37 @@ class RoomWorkerStore(SQLBaseStore):
|
|||
allow_none=True,
|
||||
)
|
||||
|
||||
def get_room_with_stats(self, room_id: str):
|
||||
"""Retrieve room with statistics.
|
||||
|
||||
Args:
|
||||
room_id: The ID of the room to retrieve.
|
||||
Returns:
|
||||
A dict containing the room information, or None if the room is unknown.
|
||||
"""
|
||||
|
||||
def get_room_with_stats_txn(txn, room_id):
|
||||
sql = """
|
||||
SELECT room_id, state.name, state.canonical_alias, curr.joined_members,
|
||||
curr.local_users_in_room AS joined_local_members, rooms.room_version AS version,
|
||||
rooms.creator, state.encryption, state.is_federatable AS federatable,
|
||||
rooms.is_public AS public, state.join_rules, state.guest_access,
|
||||
state.history_visibility, curr.current_state_events AS state_events
|
||||
FROM rooms
|
||||
LEFT JOIN room_stats_state state USING (room_id)
|
||||
LEFT JOIN room_stats_current curr USING (room_id)
|
||||
WHERE room_id = ?
|
||||
"""
|
||||
txn.execute(sql, [room_id])
|
||||
res = self.db.cursor_to_dict(txn)[0]
|
||||
res["federatable"] = bool(res["federatable"])
|
||||
res["public"] = bool(res["public"])
|
||||
return res
|
||||
|
||||
return self.db.runInteraction(
|
||||
"get_room_with_stats", get_room_with_stats_txn, room_id
|
||||
)
|
||||
|
||||
def get_public_room_ids(self):
|
||||
return self.db.simple_select_onecol(
|
||||
table="rooms",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue