diff --git a/src/processor.rs b/src/processor.rs index 9033826..cb1fa22 100644 --- a/src/processor.rs +++ b/src/processor.rs @@ -1,12 +1,13 @@ // use crate::EolRule; -use crate::{Result, Trash, config::EolRule}; +use crate::{Delete, Result, Trash, config::EolRule}; /// Rule processor #[derive(Debug)] pub struct Processor { credential_file: String, rule: EolRule, + execute: bool, } impl Processor { @@ -14,6 +15,7 @@ impl Processor { Processor { credential_file, rule, + execute: false, } } @@ -31,4 +33,24 @@ impl Processor { messages_to_trash.run(0).await } + + async fn delete_messages(&self, label: &str) -> Result<()> { + let mut messages_to_delete = Delete::new(&self.credential_file).await?; + + messages_to_delete + .message_list() + .add_labels(&self.credential_file, &[label.to_string()]) + .await?; + + messages_to_delete + .message_list() + .set_query(&self.rule.eol_query()); + + messages_to_delete.prepare(0).await?; + if self.execute { + messages_to_delete.batch_delete().await + } else { + Ok(()) + } + } }