crypto: Expose a method to get all devices of an user.

master
Damir Jelić 2020-08-12 17:16:27 +02:00
parent 2449bd27c1
commit 36ca784690
1 changed files with 28 additions and 1 deletions

View File

@ -58,7 +58,7 @@ use super::{
}, },
store::{memorystore::MemoryStore, Result as StoreResult}, store::{memorystore::MemoryStore, Result as StoreResult},
verification::{Sas, VerificationMachine}, verification::{Sas, VerificationMachine},
CryptoStore, CryptoStore, UserDevices,
}; };
/// A map from the algorithm and device id to a one-time key. /// A map from the algorithm and device id to a one-time key.
@ -1327,6 +1327,33 @@ impl OlmMachine {
.ok() .ok()
.flatten() .flatten()
} }
/// Get a map holding all the devices of an user.
///
/// # Arguments
///
/// * `user_id` - The unique id of the user that the devices belong to.
///
/// # Example
///
/// ```
/// # use std::convert::TryFrom;
/// # use matrix_sdk_crypto::OlmMachine;
/// # use matrix_sdk_common::identifiers::UserId;
/// # use futures::executor::block_on;
/// # let alice = UserId::try_from("@alice:example.org").unwrap();
/// # let machine = OlmMachine::new(&alice, "DEVICEID".into());
/// # block_on(async {
/// let devices = machine.get_user_devices(&alice).await.unwrap();
///
/// for device in devices.devices() {
/// println!("{:?}", device);
/// }
/// # });
/// ```
pub async fn get_user_devices(&self, user_id: &UserId) -> StoreResult<UserDevices> {
self.store.get_user_devices(user_id).await
}
} }
#[cfg(test)] #[cfg(test)]