refactor(multiverse): reuse load_or_fetch_event instead of implementing it manually

This commit is contained in:
Benjamin Bouvier
2026-03-26 13:08:02 +01:00
parent e66967c46f
commit 2e334fafa2
+7 -22
View File
@@ -744,7 +744,6 @@ impl App {
})
{
let results = get_events_from_event_ids(
&self.client,
&room,
results,
)
@@ -960,30 +959,16 @@ async fn login_with_password(client: &Client) -> Result<()> {
}
async fn get_events_from_event_ids(
client: &Client,
room: &Room,
event_ids: Vec<OwnedEventId>,
) -> Vec<TimelineEvent> {
let Ok(cache_lock) = client.event_cache_store().lock().await else {
debug!("Couldnt get event cache store lock.");
return Vec::new();
};
let cache_lock =
cache_lock.as_clean().expect("Only one process must access the event cache store");
futures_util::future::join_all(event_ids.iter().map(|event_id| async {
let event_id = event_id.clone();
match cache_lock.find_event(room.room_id(), &event_id).await {
Ok(ev) => ev,
Err(_) => room
.event(&event_id, None)
.await
.inspect_err(|err| {
debug!("Failed to find event {event_id} in event cache and server: {err}");
})
.ok(),
}
futures_util::future::join_all(event_ids.iter().map(|event_id| async move {
room.load_or_fetch_event(event_id, None)
.await
.inspect_err(|err| {
debug!("Failed to find event {event_id} in event cache and server: {err}");
})
.ok()
}))
.await
.into_iter()