diff --git a/src/api/router.rs b/src/api/router.rs index 4ab9780b..399489e0 100644 --- a/src/api/router.rs +++ b/src/api/router.rs @@ -226,6 +226,7 @@ pub fn build(router: Router, server: &Server) -> Router { .ruma_route(&server::well_known_server) .ruma_route(&server::get_content_route) .ruma_route(&server::get_content_thumbnail_route) + .ruma_route(&server::get_edutypes_route) .route("/_conduwuit/local_user_count", get(client::conduwuit_local_user_count)) .route("/_continuwuity/local_user_count", get(client::conduwuit_local_user_count)); } else { diff --git a/src/api/server/edutypes.rs b/src/api/server/edutypes.rs new file mode 100644 index 00000000..963d7623 --- /dev/null +++ b/src/api/server/edutypes.rs @@ -0,0 +1,18 @@ +use conduwuit::{Config, Result}; +use ruma::{api::federation::edutypes::get_edutypes}; + +use crate::Ruma; + +/// # `GET /_matrix/federation/v1/edutypes` +/// +/// Lists EDU types we wish to receive +pub(crate) async fn get_edutypes_route( + body: Ruma, + config: &Config, +) -> Result { + Ok(get_edutypes::v1::Response { + typing: config.allow_incoming_typing, + presence: config.allow_incoming_presence, + receipt: config.allow_incoming_read_receipts, + }) +}