1
0
Fork 0
mirror of https://gitlab.com/famedly/conduit.git synced 2025-08-16 18:01:35 +00:00

joining remote rooms works too now

This commit is contained in:
avdb13 2024-07-03 07:23:31 +02:00
parent f0ca5253aa
commit 2089ca8e3c
3 changed files with 71 additions and 57 deletions

View file

@ -1,3 +1,5 @@
use std::ops::Deref;
use super::{DEVICE_ID_LENGTH, SESSION_ID_LENGTH, TOKEN_LENGTH};
use crate::{
api::client_server::{self, membership::join_room_by_id_helper},
@ -15,7 +17,7 @@ use ruma::{
uiaa::{AuthFlow, AuthType, UiaaInfo},
},
events::{room::message::RoomMessageEventContent, GlobalAccountDataEventType},
push, UserId,
push, RoomId, UserId,
};
use tracing::{info, warn};
@ -291,29 +293,27 @@ pub async fn register_route(body: Ruma<register::v3::Request>) -> Result<registe
}
}
let default_rooms = services()
.globals
.default_rooms()
.expect("default rooms should be validated on db startup");
let default_rooms = services().globals.default_rooms().await?;
let servers: Vec<_> = default_rooms
.iter()
.map(Deref::deref)
.filter_map(RoomId::server_name)
.map(Into::into)
.collect();
let _user_id = user_id.clone();
let servers = [services().globals.server_name().to_owned()];
tokio::spawn(async move {
for room_id in default_rooms {
let _ = join_room_by_id_helper(
Some(&_user_id),
room_id,
Some("All men are equal before fish.".to_owned()),
&servers,
None,
)
.await
.inspect_err(|e| {
tracing::warn!("Failed to join default room: {e}");
});
for room_id in default_rooms {
if let Err(e) = join_room_by_id_helper(
Some(&user_id),
room_id,
Some("All men are equal before fish.".to_owned()),
&servers,
None,
)
.await
{
warn!("Failed to join default room: {}", e);
}
});
}
}
Ok(register::v3::Response {