Skip to main content

tuwunel_admin/room/directory/
unpublish.rs

1use ruma::OwnedRoomOrAliasId;
2use tuwunel_core::{Err, Result};
3
4use super::local_alias;
5use crate::admin_command;
6
7#[admin_command]
8pub(super) async fn directory_unpublish(&self, room: OwnedRoomOrAliasId) -> Result {
9	local_alias(self.services, &room)?;
10
11	let room_id = self.services.alias.maybe_resolve(&room).await?;
12
13	if !self
14		.services
15		.directory
16		.is_public_room(&room_id)
17		.await
18	{
19		return Err!("Room is not published");
20	}
21
22	self.services.directory.set_not_public(&room_id);
23
24	self.write_str("Room unpublished").await
25}