✨ feat(processor): implement rule processor
- implements struct `Processor` to manage rules for trashing messages - adds method `trash_messages` to list and trash messages with labels and queries
This commit is contained in:
committed by
Jeremiah Russell
parent
04308dbbef
commit
6ba563dacf
34
src/processor.rs
Normal file
34
src/processor.rs
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
// use crate::EolRule;
|
||||||
|
|
||||||
|
use crate::{Result, Trash, config::EolRule};
|
||||||
|
|
||||||
|
/// Rule processor
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub struct Processor {
|
||||||
|
credential_file: String,
|
||||||
|
rule: EolRule,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Processor {
|
||||||
|
fn new(credential_file: String, rule: EolRule) -> Self {
|
||||||
|
Processor {
|
||||||
|
credential_file,
|
||||||
|
rule,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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?;
|
||||||
|
|
||||||
|
messages_to_trash
|
||||||
|
.message_list()
|
||||||
|
.set_query(&self.rule.eol_query());
|
||||||
|
|
||||||
|
messages_to_trash.run(0).await
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user