Refactor room_version support code
Fix advertising unsupported room versions
This commit is contained in:
@@ -12,7 +12,7 @@ use ruma::{
|
||||
},
|
||||
};
|
||||
use serde_json::json;
|
||||
use tuwunel_core::{Result, Server};
|
||||
use tuwunel_core::Result;
|
||||
|
||||
use crate::Ruma;
|
||||
|
||||
@@ -24,8 +24,10 @@ 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> =
|
||||
Server::available_room_versions().collect();
|
||||
let available: BTreeMap<RoomVersionId, RoomVersionStability> = services
|
||||
.config
|
||||
.supported_room_versions()
|
||||
.collect();
|
||||
|
||||
let mut capabilities = Capabilities::default();
|
||||
capabilities.room_versions = RoomVersionsCapability {
|
||||
|
||||
@@ -82,7 +82,7 @@ pub(crate) async fn create_room_route(
|
||||
.as_ref()
|
||||
.map_or(Ok(&services.server.config.default_room_version), |version| {
|
||||
services
|
||||
.server
|
||||
.config
|
||||
.supported_room_version(version)
|
||||
.then_ok_or_else(version, || {
|
||||
err!(Request(UnsupportedRoomVersion(
|
||||
|
||||
@@ -78,7 +78,7 @@ pub(crate) async fn upgrade_room_route(
|
||||
let version_rules = room_version::rules(new_version)?;
|
||||
|
||||
if !services
|
||||
.server
|
||||
.config
|
||||
.supported_room_version(new_version)
|
||||
{
|
||||
return Err!(Request(UnsupportedRoomVersion(
|
||||
|
||||
Reference in New Issue
Block a user