Skip to main content

tuwunel_api/client/admin/devices/
delete_device.rs

1use axum::extract::State;
2use synapse_admin_api::devices::delete_device::v1 as delete_device;
3use tuwunel_core::Result;
4
5use super::require_local_user;
6use crate::{Ruma, client::admin::require_admin};
7
8/// # `DELETE /_synapse/admin/v2/users/{user_id}/devices/{device_id}`
9///
10/// Deleting an unknown device is not an error.
11pub(crate) async fn admin_delete_device_route(
12	State(services): State<crate::State>,
13	body: Ruma<delete_device::Request>,
14) -> Result<delete_device::Response> {
15	require_admin(&services, body.sender_user()).await?;
16
17	let user_id = &body.user_id;
18	require_local_user(&services, user_id).await?;
19
20	services
21		.users
22		.remove_device(user_id, &body.device_id)
23		.await;
24
25	Ok(delete_device::Response {})
26}