Skip to content
Snippets Groups Projects
Commit f127987c authored by Jason Volk's avatar Jason Volk
Browse files

add convenience alias resolver to interface


Signed-off-by: default avatarJason Volk <jason@zemos.net>
parent fa02d7b7
No related branches found
No related tags found
2 merge requests!475Room Alias related,!476Misc Admin related
......@@ -12,7 +12,7 @@
room::power_levels::{RoomPowerLevels, RoomPowerLevelsEventContent},
StateEventType,
},
OwnedRoomAliasId, OwnedRoomId, OwnedServerName, RoomAliasId, RoomId, UserId,
OwnedRoomAliasId, OwnedRoomId, OwnedServerName, RoomAliasId, RoomId, RoomOrAliasId, UserId,
};
use crate::{appservice::RegistrationInfo, server_is_ours, services};
......@@ -52,6 +52,16 @@ pub async fn remove_alias(&self, alias: &RoomAliasId, user_id: &UserId) -> Resul
}
}
pub async fn resolve(&self, room: &RoomOrAliasId) -> Result<OwnedRoomId> {
if room.is_room_id() {
let room_id: &RoomId = &RoomId::parse(room).expect("valid RoomId");
Ok(room_id.to_owned())
} else {
let alias: &RoomAliasId = &RoomAliasId::parse(room).expect("valid RoomAliasId");
Ok(self.resolve_alias(alias, None).await?.0)
}
}
#[tracing::instrument(skip(self), name = "resolve")]
pub async fn resolve_alias(
&self, room_alias: &RoomAliasId, servers: Option<&Vec<OwnedServerName>>,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment