mas_handlers/graphql/model/
matrix.rs1use async_graphql::SimpleObject;
8use mas_matrix::HomeserverConnection;
9
10#[derive(SimpleObject)]
11pub struct MatrixUser {
12 mxid: String,
14
15 display_name: Option<String>,
17
18 avatar_url: Option<String>,
20
21 deactivated: bool,
23}
24
25impl MatrixUser {
26 pub(crate) async fn load<C: HomeserverConnection + ?Sized>(
27 conn: &C,
28 user: &str,
29 ) -> Result<MatrixUser, anyhow::Error> {
30 let mxid = conn.mxid(user);
31
32 let info = conn.query_user(&mxid).await?;
33
34 Ok(MatrixUser {
35 mxid,
36 display_name: info.displayname,
37 avatar_url: info.avatar_url,
38 deactivated: info.deactivated,
39 })
40 }
41}