tuwunel_api/client/admin/rooms/
make_room_admin.rs1use axum::extract::State;
2use synapse_admin_api::rooms::make_room_admin::v1::{Request, Response};
3use tuwunel_core::Result;
4
5use crate::{Ruma, client::admin::require_admin};
6
7pub(crate) async fn admin_make_room_admin_route(
12 State(services): State<crate::State>,
13 body: Ruma<Request>,
14) -> Result<Response> {
15 let sender_user = body.sender_user();
16
17 require_admin(&services, sender_user).await?;
18
19 let (room_id, _servers) = services
20 .alias
21 .maybe_resolve_with_servers(&body.room_id_or_alias, None)
22 .await?;
23
24 let target = body.user_id.as_deref().unwrap_or(sender_user);
25
26 services
27 .admin
28 .make_room_admin(&room_id, target)
29 .await?;
30
31 Ok(Response {})
32}