abstract supported room versions apis
Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
parent
f0a1aaf7bc
commit
8e8c6bfe07
9 changed files with 75 additions and 88 deletions
|
@ -19,23 +19,11 @@ use crate::{Result, Ruma};
|
|||
pub(crate) async fn get_capabilities_route(
|
||||
State(services): State<crate::State>, _body: Ruma<get_capabilities::v3::Request>,
|
||||
) -> Result<get_capabilities::v3::Response> {
|
||||
let available: BTreeMap<RoomVersionId, RoomVersionStability> = services
|
||||
.globals
|
||||
.unstable_room_versions
|
||||
.iter()
|
||||
.map(|unstable_room_version| (unstable_room_version.clone(), RoomVersionStability::Unstable))
|
||||
.chain(
|
||||
services
|
||||
.globals
|
||||
.stable_room_versions
|
||||
.iter()
|
||||
.map(|stable_room_version| (stable_room_version.clone(), RoomVersionStability::Stable)),
|
||||
)
|
||||
.collect();
|
||||
let available: BTreeMap<RoomVersionId, RoomVersionStability> = services.server.available_room_versions().collect();
|
||||
|
||||
let mut capabilities = Capabilities::default();
|
||||
capabilities.room_versions = RoomVersionsCapability {
|
||||
default: services.globals.default_room_version(),
|
||||
default: services.server.config.default_room_version.clone(),
|
||||
available,
|
||||
};
|
||||
|
||||
|
|
|
@ -706,11 +706,7 @@ async fn join_room_by_id_helper_remote(
|
|||
return Err!(BadServerResponse("Remote room version is not supported by conduwuit"));
|
||||
};
|
||||
|
||||
if !services
|
||||
.globals
|
||||
.supported_room_versions()
|
||||
.contains(&room_version_id)
|
||||
{
|
||||
if !services.server.supported_room_version(&room_version_id) {
|
||||
return Err!(BadServerResponse(
|
||||
"Remote room version {room_version_id} is not supported by conduwuit"
|
||||
));
|
||||
|
@ -1122,11 +1118,7 @@ async fn join_room_by_id_helper_local(
|
|||
return Err!(BadServerResponse("Remote room version is not supported by conduwuit"));
|
||||
};
|
||||
|
||||
if !services
|
||||
.globals
|
||||
.supported_room_versions()
|
||||
.contains(&room_version_id)
|
||||
{
|
||||
if !services.server.supported_room_version(&room_version_id) {
|
||||
return Err!(BadServerResponse(
|
||||
"Remote room version {room_version_id} is not supported by conduwuit"
|
||||
));
|
||||
|
@ -1260,7 +1252,7 @@ async fn make_join_request(
|
|||
federation::membership::prepare_join_event::v1::Request {
|
||||
room_id: room_id.to_owned(),
|
||||
user_id: sender_user.to_owned(),
|
||||
ver: services.globals.supported_room_versions(),
|
||||
ver: services.server.supported_room_versions().collect(),
|
||||
},
|
||||
)
|
||||
.await;
|
||||
|
@ -1616,11 +1608,7 @@ async fn remote_leave_room(services: &Services, user_id: &UserId, room_id: &Room
|
|||
return Err!(BadServerResponse("Remote room version is not supported by conduwuit"));
|
||||
};
|
||||
|
||||
if !services
|
||||
.globals
|
||||
.supported_room_versions()
|
||||
.contains(&room_version_id)
|
||||
{
|
||||
if !services.server.supported_room_version(&room_version_id) {
|
||||
return Err!(BadServerResponse(
|
||||
"Remote room version {room_version_id} is not supported by conduwuit"
|
||||
));
|
||||
|
|
|
@ -116,11 +116,7 @@ pub(crate) async fn create_room_route(
|
|||
|
||||
let room_version = match body.room_version.clone() {
|
||||
Some(room_version) => {
|
||||
if services
|
||||
.globals
|
||||
.supported_room_versions()
|
||||
.contains(&room_version)
|
||||
{
|
||||
if services.server.supported_room_version(&room_version) {
|
||||
room_version
|
||||
} else {
|
||||
return Err(Error::BadRequest(
|
||||
|
@ -129,7 +125,7 @@ pub(crate) async fn create_room_route(
|
|||
));
|
||||
}
|
||||
},
|
||||
None => services.globals.default_room_version(),
|
||||
None => services.server.config.default_room_version.clone(),
|
||||
};
|
||||
|
||||
let create_content = match &body.creation_content {
|
||||
|
|
|
@ -47,11 +47,7 @@ pub(crate) async fn upgrade_room_route(
|
|||
) -> Result<upgrade_room::v3::Response> {
|
||||
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
|
||||
|
||||
if !services
|
||||
.globals
|
||||
.supported_room_versions()
|
||||
.contains(&body.new_version)
|
||||
{
|
||||
if !services.server.supported_room_version(&body.new_version) {
|
||||
return Err(Error::BadRequest(
|
||||
ErrorKind::UnsupportedRoomVersion,
|
||||
"This server does not support that room version.",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue