tuwunel_admin/room/directory/
unpublish.rs1use 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}