fix(ffi): Align RoomList::preview_room with Client::get_room_preview_* functions.

This removes the restriction applied in the FFI layer so only invited and knocked rooms can return room previews.
This commit is contained in:
Jorge Martín
2025-02-05 08:53:36 +01:00
committed by Jorge Martin Espinosa
parent ed8c1d543a
commit dddbcfbabb

View File

@@ -593,10 +593,7 @@ impl RoomListItem {
}
/// Builds a `RoomPreview` from a room list item. This is intended for
/// invited or knocked rooms.
///
/// An error will be returned if the room is in a state other than invited
/// or knocked.
/// invited, knocked or banned rooms.
async fn preview_room(&self, via: Vec<String>) -> Result<Arc<RoomPreview>, ClientError> {
// Validate parameters first.
let server_names: Vec<OwnedServerName> = via
@@ -604,16 +601,6 @@ impl RoomListItem {
.map(|server| ServerName::parse(server).map_err(ClientError::from))
.collect::<Result<_, ClientError>>()?;
// Validate internal room state.
let membership = self.membership();
if !matches!(membership, Membership::Invited | Membership::Knocked) {
return Err(RoomListError::IncorrectRoomMembership {
expected: vec![Membership::Invited, Membership::Knocked],
actual: membership,
}
.into());
}
// Do the thing.
let client = self.inner.client();
let (room_or_alias_id, mut server_names) = if let Some(alias) = self.inner.canonical_alias()