@ -1390,34 +1390,13 @@ pub fn join_room_by_id_route(
// TODO: Ask a remote server if we don't have this room
// TODO: Ask a remote server if we don't have this room
let event = db
let event = member ::MemberEventContent {
. rooms
membership : member ::MembershipState ::Join ,
. room_state_get ( & body . room_id , & EventType ::RoomMember , & user_id . to_string ( ) ) ?
displayname : db . users . displayname ( & user_id ) ? ,
. map_or_else (
avatar_url : db . users . avatar_url ( & user_id ) ? ,
| | {
is_direct : None ,
// There was no existing membership event
third_party_invite : None ,
Ok ::< _ , Error > ( member ::MemberEventContent {
} ;
membership : member ::MembershipState ::Join ,
displayname : db . users . displayname ( & user_id ) ? ,
avatar_url : db . users . avatar_url ( & user_id ) ? ,
is_direct : None ,
third_party_invite : None ,
} )
} ,
| pdu | {
// We change the existing membership event
let mut event = serde_json ::from_value ::< EventJson < member ::MemberEventContent > > (
pdu . content . clone ( ) ,
)
. map_err ( | _ | Error ::bad_database ( "Invalid member event in db." ) ) ?
. deserialize ( )
. map_err ( | _ | Error ::bad_database ( "Invalid member event in db." ) ) ? ;
event . membership = member ::MembershipState ::Join ;
event . displayname = db . users . displayname ( & user_id ) ? ;
event . avatar_url = db . users . avatar_url ( & user_id ) ? ;
Ok ( event )
} ,
) ? ;
db . rooms . append_pdu (
db . rooms . append_pdu (
body . room_id . clone ( ) ,
body . room_id . clone ( ) ,