v0.2.6
RustBox CI / rustbox (push) Canceled after 0s

This commit is contained in:
Mateusz Gruszczyński committed 2026-11-01 15:46:10 +01:00
1 parent 47c3cd7f65
commit cfc74d9db6
33 files changed
+850 -244

No files matched your search

+42 -22
View File
@@ -121,7 +121,7 @@ pub async fn list_messages(
.await
.map_err(AppError::InternalError)?;
if !folder_fresh {
if query.refresh || !folder_fresh {
let creds = build_creds(&session, &config)?;
let status = imap_client
@@ -254,27 +254,44 @@ pub async fn list_messages(
}
let name = folder.clone();
let (messages, total_count, tags_map, flagged_on_top) = database
.run(move |conn| {
let flagged_on_top = db::folder_preferences::effective_flagged_on_top(conn, &name)?;
let messages = db::messages::get_messages_sorted(
conn,
&name,
query.page,
query.per_page,
&query.sort,
flagged_on_top,
)?;
let total = db::messages::count_messages(conn, &name)?;
let refs: Vec<_> = messages
.iter()
.map(|m| (m.uid, m.folder.as_str()))
.collect();
let tags = db::tags::get_tags_for_messages(conn, &refs)?;
Ok((messages, total, tags, flagged_on_top))
})
.await
.map_err(AppError::InternalError)?;
let (messages, total_count, tags_map, flagged_on_top, folder_total_count, unread_count) =
database
.run(move |conn| {
let flagged_on_top = db::folder_preferences::effective_flagged_on_top(conn, &name)?;
let messages = db::messages::get_messages_sorted(
conn,
&name,
query.page,
query.per_page,
&query.sort,
flagged_on_top,
)?;
let total = db::messages::count_messages(conn, &name)?;
let refs: Vec<_> = messages
.iter()
.map(|m| (m.uid, m.folder.as_str()))
.collect();
let tags = db::tags::get_tags_for_messages(conn, &refs)?;
let folder_state = db::folders::get_folder(conn, &name)?;
let folder_total_count = folder_state
.as_ref()
.map(|item| item.total_count)
.unwrap_or(total);
let unread_count = folder_state
.as_ref()
.map(|item| item.unread_count)
.unwrap_or(0);
Ok((
messages,
total,
tags,
flagged_on_top,
folder_total_count,
unread_count,
))
})
.await
.map_err(AppError::InternalError)?;
tracing::info!(
folder = %folder,
@@ -317,6 +334,8 @@ pub async fn list_messages(
per_page: query.per_page,
syncing,
flagged_on_top,
folder_total_count,
unread_count,
})
.into_response())
}
@@ -1636,6 +1655,7 @@ mod sync_tests {
page: 0,
per_page: 50,
sort: "date_desc".to_string(),
refresh: false,
}),
)
.await