feat(sdk): Add method to get homeserver capabilities

This commit is contained in:
Kévin Commaille
2022-02-15 17:42:12 +01:00
parent f220f2e743
commit c67d5afaf4

View File

@@ -43,6 +43,7 @@ use ruma::{
client::{
r0::{
account::{register, whoami},
capabilities::{get_capabilities, Capabilities},
device::{delete_devices, get_devices},
directory::{get_public_rooms, get_public_rooms_filtered},
filter::{create_filter::Request as FilterUploadRequest, FilterDefinition},
@@ -346,6 +347,33 @@ impl Client {
.await
}
/// Get the capabilities of the homeserver.
///
/// This method should be used to check what features are supported by the
/// homeserver.
///
/// # Example
/// ```no_run
/// # use futures::executor::block_on;
/// # use matrix_sdk::Client;
/// # use url::Url;
/// # block_on(async {
/// # let homeserver = Url::parse("http://example.com")?;
/// let client = Client::new(homeserver).await?;
///
/// let capabilities = client.get_capabilities().await?;
///
/// if capabilities.change_password.enabled {
/// // Change password
/// }
///
/// # Result::<_, anyhow::Error>::Ok(()) });
/// ```
pub async fn get_capabilities(&self) -> HttpResult<Capabilities> {
let res = self.send(get_capabilities::Request::new(), None).await?;
Ok(res.capabilities)
}
/// Process a [transaction] received from the homeserver
///
/// # Arguments