tuwunel_api/client/account_data/
set_global_account_data.rs1use axum::extract::State;
2use ruma::api::client::config::set_global_account_data;
3use tuwunel_core::{Err, Result};
4
5use super::set_account_data;
6use crate::Ruma;
7
8pub(crate) async fn set_global_account_data_route(
12 State(services): State<crate::State>,
13 body: Ruma<set_global_account_data::v3::Request>,
14) -> Result<set_global_account_data::v3::Response> {
15 let sender_user = body.sender_user();
16
17 if sender_user != body.user_id && body.appservice_info.is_none() {
18 return Err!(Request(Forbidden("You cannot set account data for other users.")));
19 }
20
21 set_account_data(
22 &services,
23 None,
24 &body.user_id,
25 &body.event_type.to_string(),
26 body.data.json(),
27 )
28 .await?;
29
30 Ok(set_global_account_data::v3::Response {})
31}