Refactor room_version support code

Fix advertising unsupported room versions
This commit is contained in:
dasha_uwu
2026-02-09 00:16:56 +05:00
committed by Jason Volk
parent d6ae4e5ff2
commit 4bba40982c
12 changed files with 79 additions and 93 deletions

View File

@@ -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 {

View File

@@ -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(

View File

@@ -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(

View File

@@ -41,7 +41,7 @@ pub(crate) async fn create_invite_route(
.await?;
if !services
.server
.config
.supported_room_version(&body.room_version)
{
return Err(Error::BadRequest(