Support room version 3
This commit is contained in:
parent
d8a3b257f2
commit
4b28146ee7
5 changed files with 41 additions and 9 deletions
|
@ -151,7 +151,7 @@ impl Globals {
|
|||
// Supported and stable room versions
|
||||
let stable_room_versions = vec![RoomVersionId::V6];
|
||||
// Experimental, partially supported room versions
|
||||
let unstable_room_versions = vec![RoomVersionId::V4, RoomVersionId::V5];
|
||||
let unstable_room_versions = vec![RoomVersionId::V3, RoomVersionId::V4, RoomVersionId::V5];
|
||||
|
||||
let s = Self {
|
||||
globals,
|
||||
|
|
|
@ -3437,4 +3437,27 @@ impl Rooms {
|
|||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Returns the room's version.
|
||||
#[tracing::instrument(skip(self))]
|
||||
pub fn get_room_version(&self, room_id: &RoomId) -> RoomVersionId {
|
||||
let create_event = self
|
||||
.room_state_get(room_id, &StateEventType::RoomCreate, "")
|
||||
.unwrap();
|
||||
|
||||
let create_event_content: Option<RoomCreateEventContent> = create_event
|
||||
.as_ref()
|
||||
.map(|create_event| {
|
||||
serde_json::from_str(create_event.content.get()).map_err(|e| {
|
||||
warn!("Invalid create event: {}", e);
|
||||
Error::bad_database("Invalid create event in db.")
|
||||
})
|
||||
})
|
||||
.transpose()
|
||||
.unwrap();
|
||||
|
||||
create_event_content
|
||||
.map(|create_event| create_event.room_version)
|
||||
.expect("Invalid room version")
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue