✨ feat(processor): add label existence check before processing
- check if the label exists in the mailbox before proceeding to trash or delete messages - return an error if the label is not found, preventing further processing
This commit is contained in:
committed by
Jeremiah Russell
parent
c7eb6a5581
commit
e0d319698f
@@ -1,6 +1,6 @@
|
|||||||
// use crate::EolRule;
|
// use crate::EolRule;
|
||||||
|
|
||||||
use crate::{Delete, EolAction, Result, Trash, config::EolRule};
|
use crate::{Delete, EolAction, Error, Result, Trash, config::EolRule};
|
||||||
|
|
||||||
/// Rule processor
|
/// Rule processor
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
@@ -28,16 +28,21 @@ impl<'a> Processor<'a> {
|
|||||||
/// Trash the messages
|
/// Trash the messages
|
||||||
pub async fn trash_messages(&self, label: &str) -> Result<()> {
|
pub async fn trash_messages(&self, label: &str) -> Result<()> {
|
||||||
let mut messages_to_trash = Trash::new(&self.credential_file).await?;
|
let mut messages_to_trash = Trash::new(&self.credential_file).await?;
|
||||||
|
|
||||||
messages_to_trash
|
messages_to_trash
|
||||||
.message_list()
|
.message_list()
|
||||||
.add_labels(&self.credential_file, &[label.to_string()])
|
.add_labels(&self.credential_file, &[label.to_string()])
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
|
if messages_to_trash.message_list().label_ids().is_empty() {
|
||||||
|
return Err(Error::LableNotFoundInMailbox(label.to_string()));
|
||||||
|
}
|
||||||
|
|
||||||
messages_to_trash
|
messages_to_trash
|
||||||
.message_list()
|
.message_list()
|
||||||
.set_query(&self.rule.eol_query());
|
.set_query(&self.rule.eol_query());
|
||||||
|
|
||||||
|
log::info!("{messages_to_trash:?}");
|
||||||
|
log::info!("Ready to run");
|
||||||
messages_to_trash.run(0).await
|
messages_to_trash.run(0).await
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -50,12 +55,19 @@ impl<'a> Processor<'a> {
|
|||||||
.add_labels(&self.credential_file, &[label.to_string()])
|
.add_labels(&self.credential_file, &[label.to_string()])
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
|
if messages_to_delete.message_list().label_ids().is_empty() {
|
||||||
|
return Err(Error::LableNotFoundInMailbox(label.to_string()));
|
||||||
|
}
|
||||||
|
|
||||||
messages_to_delete
|
messages_to_delete
|
||||||
.message_list()
|
.message_list()
|
||||||
.set_query(&self.rule.eol_query());
|
.set_query(&self.rule.eol_query());
|
||||||
|
|
||||||
|
log::info!("{messages_to_delete:?}");
|
||||||
|
log::info!("Ready to run");
|
||||||
messages_to_delete.prepare(0).await?;
|
messages_to_delete.prepare(0).await?;
|
||||||
if self.execute {
|
if self.execute {
|
||||||
|
log::warn!("***executing final delete messages***");
|
||||||
messages_to_delete.batch_delete().await
|
messages_to_delete.batch_delete().await
|
||||||
} else {
|
} else {
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|||||||
Reference in New Issue
Block a user