use axum::extract::State; use ruma::api::{client::error::ErrorKind, federation::discovery::discover_homeserver}; use crate::{Error, Result, Ruma}; /// # `GET /.well-known/matrix/server` /// /// Returns the .well-known URL if it is configured, otherwise returns 404. pub(crate) async fn well_known_server( State(services): State, _body: Ruma, ) -> Result { Ok(discover_homeserver::Response { server: match services.server.config.well_known.server.as_ref() { | Some(server_name) => server_name.to_owned(), | None => return Err(Error::BadRequest(ErrorKind::NotFound, "Not found.")), }, }) }