@@ -22,10 +22,8 @@ use futures_util::future::join_all;
22
22
use matrix_sdk_base:: { RoomHero , RoomInfo , RoomState } ;
23
23
use ruma:: {
24
24
api:: client:: { membership:: joined_members, state:: get_state_events} ,
25
- directory:: PublicRoomJoinRule ,
26
- events:: room:: { history_visibility:: HistoryVisibility , join_rules:: JoinRule } ,
27
- room:: RoomType ,
28
- space:: SpaceRoomJoinRule ,
25
+ events:: room:: history_visibility:: HistoryVisibility ,
26
+ room:: { JoinRuleSummary , RoomType } ,
29
27
OwnedMxcUri , OwnedRoomAliasId , OwnedRoomId , OwnedServerName , RoomId , RoomOrAliasId , ServerName ,
30
28
} ;
31
29
use tokio:: try_join;
@@ -64,7 +62,7 @@ pub struct RoomPreview {
64
62
pub room_type : Option < RoomType > ,
65
63
66
64
/// What's the join rule for this room?
67
- pub join_rule : Option < SpaceRoomJoinRule > ,
65
+ pub join_rule : Option < JoinRuleSummary > ,
68
66
69
67
/// Is the room world-readable (i.e. is its history_visibility set to
70
68
/// world_readable)?
@@ -102,19 +100,7 @@ impl RoomPreview {
102
100
topic : room_info. topic ( ) . map ( ToOwned :: to_owned) ,
103
101
avatar_url : room_info. avatar_url ( ) . map ( ToOwned :: to_owned) ,
104
102
room_type : room_info. room_type ( ) . cloned ( ) ,
105
- join_rule : room_info. join_rule ( ) . map ( |rule| match rule {
106
- JoinRule :: Invite => SpaceRoomJoinRule :: Invite ,
107
- JoinRule :: Knock => SpaceRoomJoinRule :: Knock ,
108
- JoinRule :: Private => SpaceRoomJoinRule :: Private ,
109
- JoinRule :: Restricted ( _) => SpaceRoomJoinRule :: Restricted ,
110
- JoinRule :: KnockRestricted ( _) => SpaceRoomJoinRule :: KnockRestricted ,
111
- JoinRule :: Public => SpaceRoomJoinRule :: Public ,
112
- _ => {
113
- // The JoinRule enum is non-exhaustive. Let's do a white lie and pretend it's
114
- // private (a cautious choice).
115
- SpaceRoomJoinRule :: Private
116
- }
117
- } ) ,
103
+ join_rule : room_info. join_rule ( ) . cloned ( ) . map ( Into :: into) ,
118
104
is_world_readable : room_info
119
105
. history_visibility ( )
120
106
. map ( |vis| * vis == HistoryVisibility :: WorldReadable ) ,
@@ -253,7 +239,7 @@ impl RoomPreview {
253
239
let own_server_name = client. session_meta ( ) . map ( |s| s. user_id . server_name ( ) ) ;
254
240
let via = ensure_server_names_is_not_empty ( own_server_name, via, room_or_alias_id) ;
255
241
256
- let request = ruma:: api:: client:: room:: get_summary:: msc3266 :: Request :: new (
242
+ let request = ruma:: api:: client:: room:: get_summary:: v1 :: Request :: new (
257
243
room_or_alias_id. to_owned ( ) ,
258
244
via,
259
245
) ;
@@ -278,17 +264,19 @@ impl RoomPreview {
278
264
None
279
265
} ;
280
266
267
+ let summary = response. summary ;
268
+
281
269
Ok ( RoomPreview {
282
270
room_id,
283
- canonical_alias : response . canonical_alias ,
284
- name : response . name ,
285
- topic : response . topic ,
286
- avatar_url : response . avatar_url ,
287
- num_joined_members : response . num_joined_members . into ( ) ,
271
+ canonical_alias : summary . canonical_alias ,
272
+ name : summary . name ,
273
+ topic : summary . topic ,
274
+ avatar_url : summary . avatar_url ,
275
+ num_joined_members : summary . num_joined_members . into ( ) ,
288
276
num_active_members,
289
- room_type : response . room_type ,
290
- join_rule : Some ( response . join_rule ) ,
291
- is_world_readable : Some ( response . world_readable ) ,
277
+ room_type : summary . room_type ,
278
+ join_rule : Some ( summary . join_rule ) ,
279
+ is_world_readable : Some ( summary . world_readable ) ,
292
280
state,
293
281
is_direct,
294
282
heroes : cached_room. map ( |r| r. heroes ( ) ) ,
@@ -375,14 +363,7 @@ async fn search_for_room_preview_in_room_directory(
375
363
num_active_members : None ,
376
364
// Assume it's a room
377
365
room_type : None ,
378
- join_rule : Some ( match room_description. join_rule {
379
- PublicRoomJoinRule :: Public => SpaceRoomJoinRule :: Public ,
380
- PublicRoomJoinRule :: Knock => SpaceRoomJoinRule :: Knock ,
381
- PublicRoomJoinRule :: _Custom( rule) => SpaceRoomJoinRule :: _Custom ( rule) ,
382
- _ => {
383
- panic ! ( "Unexpected PublicRoomJoinRule {:?}" , room_description. join_rule)
384
- }
385
- } ) ,
366
+ join_rule : Some ( room_description. join_rule . into ( ) ) ,
386
367
is_world_readable : Some ( room_description. is_world_readable ) ,
387
368
state : None ,
388
369
is_direct : None ,
0 commit comments