Skip to main content

tuwunel_admin/room/alias/
remove.rs

1use tuwunel_core::{Result, err};
2
3use super::parse_alias_from_localpart;
4use crate::admin_command;
5
6#[admin_command]
7pub(super) async fn alias_remove(&self, room_alias_localpart: String) -> Result {
8	let room_alias = parse_alias_from_localpart(self.services, &room_alias_localpart)?;
9
10	// remove_alias fails only when the alias is absent or its value is invalid.
11	let room_id = self
12		.services
13		.alias
14		.remove_alias(&room_alias)
15		.await
16		.map_err(|_| err!("Alias isn't in use."))?;
17
18	write!(self, "Removed alias from {room_id}").await
19}