diff --git a/src/api/client/thirdparty.rs b/src/api/client/thirdparty.rs index de24c0ec..f6af8729 100644 --- a/src/api/client/thirdparty.rs +++ b/src/api/client/thirdparty.rs @@ -2,7 +2,7 @@ use std::collections::BTreeMap; use ruma::api::client::thirdparty::get_protocols; -use crate::{Result, Ruma}; +use crate::{Result, Ruma, RumaResponse}; /// # `GET /_matrix/client/r0/thirdparty/protocols` /// @@ -15,3 +15,13 @@ pub(crate) async fn get_protocols_route( protocols: BTreeMap::new(), }) } + +/// # `GET /_matrix/client/unstable/thirdparty/protocols` +/// +/// Same as `get_protocols_route`, except for some reason Element Android legacy +/// calls this +pub(crate) async fn get_protocols_route_unstable( + body: Ruma, +) -> Result> { + get_protocols_route(body).await.map(RumaResponse) +} diff --git a/src/api/routes.rs b/src/api/routes.rs index 94951aec..b22a32cb 100644 --- a/src/api/routes.rs +++ b/src/api/routes.rs @@ -94,6 +94,8 @@ pub fn build(router: Router, server: &Server) -> Router { .ruma_route(client::search_users_route) .ruma_route(client::get_member_events_route) .ruma_route(client::get_protocols_route) + .route("/_matrix/client/unstable/thirdparty/protocols", + get(client::get_protocols_route_unstable)) .ruma_route(client::send_message_event_route) .ruma_route(client::send_state_event_for_key_route) .ruma_route(client::get_state_events_route)