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	let id = self
11		.services
12		.alias
13		.resolve_local_alias(&room_alias)
14		.await
15		.map_err(|_| err!("Alias isn't in use."))?;
16
17	self.services
18		.alias
19		.remove_alias(&room_alias)
20		.await
21		.map_err(|err| err!("Failed to remove alias: {err}"))?;
22
23	write!(self, "Removed alias from {id}").await
24}