mirror of
https://github.com/chatmail/core.git
synced 2026-04-02 05:22:14 +03:00
refactor(imap): pass Imap Session to update_recent_quota()
This commit is contained in:
@@ -484,8 +484,10 @@ impl Context {
|
||||
};
|
||||
|
||||
if quota_needs_update {
|
||||
if let Err(err) = self.update_recent_quota(&mut connection).await {
|
||||
warn!(self, "Failed to update quota: {err:#}.");
|
||||
if let Some(session) = connection.session.as_mut() {
|
||||
if let Err(err) = self.update_recent_quota(session).await {
|
||||
warn!(self, "Failed to update quota: {err:#}.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@ use crate::config::Config;
|
||||
use crate::context::Context;
|
||||
use crate::imap::scan_folders::get_watched_folders;
|
||||
use crate::imap::session::Session as ImapSession;
|
||||
use crate::imap::Imap;
|
||||
use crate::message::{Message, Viewtype};
|
||||
use crate::tools;
|
||||
use crate::{stock_str, EventType};
|
||||
@@ -111,13 +110,7 @@ impl Context {
|
||||
/// As the message is added only once, the user is not spammed
|
||||
/// in case for some providers the quota is always at ~100%
|
||||
/// and new space is allocated as needed.
|
||||
pub(crate) async fn update_recent_quota(&self, imap: &mut Imap) -> Result<()> {
|
||||
if let Err(err) = imap.prepare(self).await {
|
||||
warn!(self, "could not connect: {:#}", err);
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
let session = imap.session.as_mut().context("no session")?;
|
||||
pub(crate) async fn update_recent_quota(&self, session: &mut ImapSession) -> Result<()> {
|
||||
let quota = if session.can_check_quota() {
|
||||
let folders = get_watched_folders(self).await?;
|
||||
get_unique_quota_roots_and_usage(session, folders).await
|
||||
|
||||
@@ -408,8 +408,10 @@ async fn inbox_loop(
|
||||
};
|
||||
|
||||
if quota_needs_update {
|
||||
if let Err(err) = ctx.update_recent_quota(&mut connection).await {
|
||||
warn!(ctx, "Failed to update quota: {:#}.", err);
|
||||
if let Some(session) = connection.session.as_mut() {
|
||||
if let Err(err) = ctx.update_recent_quota(session).await {
|
||||
warn!(ctx, "Failed to update quota: {:#}.", err);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user