arminius_lib_sync/syncv4/execute/fetch/
mod.rs1mod rooms;
8
9use std::collections::BTreeMap;
10
11use arminius_lib_db_sync::syncv4::TransactedSyncV4Queries;
12use ruma::{OwnedRoomId, api::client::sync::sync_events};
13
14use crate::syncv4::{error::SyncV4Error, plan};
15
16pub(super) struct Fetched {
20 pub(crate) rooms: BTreeMap<OwnedRoomId, sync_events::v5::response::Room>,
22 }
24
25pub(super) async fn fetch<T: TransactedSyncV4Queries>(
27 transaction: &mut T,
28 plan: &plan::SyncV4Plan,
29) -> Result<Fetched, SyncV4Error> {
30 let rooms = rooms::fetch_rooms(
31 transaction,
32 &plan.connection,
33 &plan.rooms_bump_stamps,
34 &plan.rooms_to_sync,
35 )
36 .await?;
37
38 Ok(Fetched { rooms })
41}