✨ feat(cli): create message trait to share list parameters
- create message trait to share list parameters - implement message trait for message and delete cli
This commit is contained in:
committed by
Jeremiah Russell
parent
e488cd25cf
commit
7b9be5f243
43
src/cli/message_trait.rs
Normal file
43
src/cli/message_trait.rs
Normal file
@@ -0,0 +1,43 @@
|
||||
use cull_gmail::{GmailClient, MessageList, Result};
|
||||
|
||||
use crate::{delete_cli::DeleteCli, message_cli::MessageCli};
|
||||
|
||||
pub trait Message {
|
||||
fn set_parameters(&self, client: &mut GmailClient) -> Result<()>;
|
||||
}
|
||||
|
||||
impl Message for MessageCli {
|
||||
fn set_parameters(&self, client: &mut GmailClient) -> Result<()> {
|
||||
if !self.labels().is_empty() {
|
||||
client.add_labels(self.labels())?;
|
||||
}
|
||||
|
||||
if let Some(query) = self.query().as_ref() {
|
||||
client.set_query(query)
|
||||
}
|
||||
|
||||
log::trace!("Max results: `{}`", self.max_results());
|
||||
client.set_max_results(self.max_results());
|
||||
log::debug!("List max results set to {}", client.max_results());
|
||||
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
impl Message for DeleteCli {
|
||||
fn set_parameters(&self, client: &mut GmailClient) -> Result<()> {
|
||||
if !self.labels().is_empty() {
|
||||
client.add_labels(self.labels())?;
|
||||
}
|
||||
|
||||
if let Some(query) = self.query().as_ref() {
|
||||
client.set_query(query)
|
||||
}
|
||||
|
||||
log::trace!("Max results: `{}`", self.max_results());
|
||||
client.set_max_results(self.max_results());
|
||||
log::debug!("List max results set to {}", client.max_results());
|
||||
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user