|
|
|
|
@ -1967,15 +1967,6 @@ pub fn create_join_event_template_route(
@@ -1967,15 +1967,6 @@ pub fn create_join_event_template_route(
|
|
|
|
|
)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if !body.ver.contains(&RoomVersionId::Version6) { |
|
|
|
|
return Err(Error::BadRequest( |
|
|
|
|
ErrorKind::IncompatibleRoomVersion { |
|
|
|
|
room_version: RoomVersionId::Version6, |
|
|
|
|
}, |
|
|
|
|
"Room version not supported.", |
|
|
|
|
)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
let prev_events = db |
|
|
|
|
.rooms |
|
|
|
|
.get_pdu_leaves(&body.room_id)? |
|
|
|
|
@ -2006,12 +1997,19 @@ pub fn create_join_event_template_route(
@@ -2006,12 +1997,19 @@ pub fn create_join_event_template_route(
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// If there was no create event yet, assume we are creating a version 6 room right now
|
|
|
|
|
let room_version = RoomVersion::new( |
|
|
|
|
&create_event_content.map_or(RoomVersionId::Version6, |create_event| { |
|
|
|
|
let room_version_id = create_event_content.map_or(RoomVersionId::Version6, |create_event| { |
|
|
|
|
create_event.room_version |
|
|
|
|
}), |
|
|
|
|
) |
|
|
|
|
.expect("room version is supported"); |
|
|
|
|
}); |
|
|
|
|
let room_version = RoomVersion::new(&room_version_id).expect("room version is supported"); |
|
|
|
|
|
|
|
|
|
if !body.ver.contains(&room_version_id) { |
|
|
|
|
return Err(Error::BadRequest( |
|
|
|
|
ErrorKind::IncompatibleRoomVersion { |
|
|
|
|
room_version: room_version_id, |
|
|
|
|
}, |
|
|
|
|
"Room version not supported.", |
|
|
|
|
)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
let content = serde_json::to_value(MemberEventContent { |
|
|
|
|
avatar_url: None, |
|
|
|
|
@ -2108,7 +2106,7 @@ pub fn create_join_event_template_route(
@@ -2108,7 +2106,7 @@ pub fn create_join_event_template_route(
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
Ok(create_join_event_template::v1::Response { |
|
|
|
|
room_version: Some(RoomVersionId::Version6), |
|
|
|
|
room_version: Some(room_version_id), |
|
|
|
|
event: serde_json::from_value::<Raw<_>>( |
|
|
|
|
serde_json::to_value(pdu_json).expect("CanonicalJson is valid serde_json::Value"), |
|
|
|
|
) |
|
|
|
|
@ -2238,7 +2236,8 @@ pub async fn create_invite_route(
@@ -2238,7 +2236,8 @@ pub async fn create_invite_route(
|
|
|
|
|
return Err(Error::bad_config("Federation is disabled.")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if body.room_version < RoomVersionId::Version6 { |
|
|
|
|
if body.room_version != RoomVersionId::Version5 && body.room_version != RoomVersionId::Version6 |
|
|
|
|
{ |
|
|
|
|
return Err(Error::BadRequest( |
|
|
|
|
ErrorKind::IncompatibleRoomVersion { |
|
|
|
|
room_version: body.room_version.clone(), |
|
|
|
|
|