refactor(multiverse): reuse load_or_fetch_event instead of implementing it manually
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user