diff --git a/src/processor.rs b/src/processor.rs index 1638ffb..95af729 100644 --- a/src/processor.rs +++ b/src/processor.rs @@ -1,6 +1,6 @@ // use crate::EolRule; -use crate::{Delete, EolAction, Result, Trash, config::EolRule}; +use crate::{Delete, EolAction, Error, Result, Trash, config::EolRule}; /// Rule processor #[derive(Debug)] @@ -28,16 +28,21 @@ impl<'a> Processor<'a> { /// Trash the messages pub async fn trash_messages(&self, label: &str) -> Result<()> { let mut messages_to_trash = Trash::new(&self.credential_file).await?; - messages_to_trash .message_list() .add_labels(&self.credential_file, &[label.to_string()]) .await?; + if messages_to_trash.message_list().label_ids().is_empty() { + return Err(Error::LableNotFoundInMailbox(label.to_string())); + } + messages_to_trash .message_list() .set_query(&self.rule.eol_query()); + log::info!("{messages_to_trash:?}"); + log::info!("Ready to run"); messages_to_trash.run(0).await } @@ -50,12 +55,19 @@ impl<'a> Processor<'a> { .add_labels(&self.credential_file, &[label.to_string()]) .await?; + if messages_to_delete.message_list().label_ids().is_empty() { + return Err(Error::LableNotFoundInMailbox(label.to_string())); + } + messages_to_delete .message_list() .set_query(&self.rule.eol_query()); + log::info!("{messages_to_delete:?}"); + log::info!("Ready to run"); messages_to_delete.prepare(0).await?; if self.execute { + log::warn!("***executing final delete messages***"); messages_to_delete.batch_delete().await } else { Ok(())