diff --git a/src/api/client/mod.rs b/src/api/client/mod.rs index 3c7b39e2..1f08ede4 100644 --- a/src/api/client/mod.rs +++ b/src/api/client/mod.rs @@ -35,10 +35,11 @@ pub(super) mod tag; pub(super) mod thirdparty; pub(super) mod threads; pub(super) mod to_device; +pub(super) mod tuwunel; pub(super) mod typing; pub(super) mod unstable; -pub(super) mod unversioned; pub(super) mod user_directory; +pub(super) mod versions; pub(super) mod voip; pub(super) mod well_known; @@ -81,10 +82,11 @@ pub(super) use tag::*; pub(super) use thirdparty::*; pub(super) use threads::*; pub(super) use to_device::*; +pub(super) use tuwunel::*; pub(super) use typing::*; pub(super) use unstable::*; -pub(super) use unversioned::*; pub(super) use user_directory::*; +pub(super) use versions::*; pub(super) use voip::*; pub(super) use well_known::*; diff --git a/src/api/client/tuwunel.rs b/src/api/client/tuwunel.rs new file mode 100644 index 00000000..c9024728 --- /dev/null +++ b/src/api/client/tuwunel.rs @@ -0,0 +1,29 @@ +use axum::{Json, extract::State, response::IntoResponse}; +use futures::StreamExt; +use tuwunel_core::Result; + +/// # `GET /_tuwunel/server_version` +/// +/// Tuwunel-specific API to get the server version, results akin to +/// `/_matrix/federation/v1/version` +pub(crate) async fn tuwunel_server_version() -> Result { + Ok(Json(serde_json::json!({ + "name": tuwunel_core::version::name(), + "version": tuwunel_core::version::version(), + }))) +} + +/// # `GET /_tuwunel/local_user_count` +/// +/// Tuwunel-specific API to return the amount of users registered on this +/// homeserver. Endpoint is disabled if federation is disabled for privacy. This +/// only includes active users (not deactivated, no guests, etc) +pub(crate) async fn tuwunel_local_user_count( + State(services): State, +) -> Result { + let user_count = services.users.list_local_users().count().await; + + Ok(Json(serde_json::json!({ + "count": user_count + }))) +} diff --git a/src/api/client/unversioned.rs b/src/api/client/versions.rs similarity index 79% rename from src/api/client/unversioned.rs rename to src/api/client/versions.rs index baad46e0..18597a4b 100644 --- a/src/api/client/unversioned.rs +++ b/src/api/client/versions.rs @@ -1,7 +1,5 @@ use std::collections::BTreeMap; -use axum::{Json, extract::State, response::IntoResponse}; -use futures::StreamExt; use ruma::api::client::discovery::get_supported_versions; use tuwunel_core::Result; @@ -65,29 +63,3 @@ pub(crate) async fn get_supported_versions_route( Ok(resp) } - -/// # `GET /_tuwunel/server_version` -/// -/// Tuwunel-specific API to get the server version, results akin to -/// `/_matrix/federation/v1/version` -pub(crate) async fn tuwunel_server_version() -> Result { - Ok(Json(serde_json::json!({ - "name": tuwunel_core::version::name(), - "version": tuwunel_core::version::version(), - }))) -} - -/// # `GET /_tuwunel/local_user_count` -/// -/// Tuwunel-specific API to return the amount of users registered on this -/// homeserver. Endpoint is disabled if federation is disabled for privacy. This -/// only includes active users (not deactivated, no guests, etc) -pub(crate) async fn tuwunel_local_user_count( - State(services): State, -) -> Result { - let user_count = services.users.list_local_users().count().await; - - Ok(Json(serde_json::json!({ - "count": user_count - }))) -}