♻️ refactor(delete): streamline delete command execution
- modify delete command to directly use `GmailClient` methods - remove intermediate `Delete` struct - simplify command execution flow
This commit is contained in:
committed by
Jeremiah Russell
parent
cdcbab0e81
commit
0269668c8b
@@ -1,5 +1,5 @@
|
|||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
use cull_gmail::{Delete, GmailClient, Result};
|
use cull_gmail::{Delete, GmailClient, MessageList, Result};
|
||||||
|
|
||||||
/// Command line options for the list subcommand
|
/// Command line options for the list subcommand
|
||||||
#[derive(Debug, Parser)]
|
#[derive(Debug, Parser)]
|
||||||
@@ -22,34 +22,24 @@ pub struct DeleteCli {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl DeleteCli {
|
impl DeleteCli {
|
||||||
pub(crate) async fn run(&self, client: &GmailClient) -> Result<()> {
|
pub(crate) async fn run(&self, client: &mut GmailClient) -> Result<()> {
|
||||||
let mut messages_to_delete = Delete::new(client).await?;
|
|
||||||
|
|
||||||
if !self.labels.is_empty() {
|
if !self.labels.is_empty() {
|
||||||
// add labels if any specified
|
// add labels if any specified
|
||||||
messages_to_delete
|
client.add_labels(&self.labels).await?;
|
||||||
.message_list()
|
|
||||||
.add_labels(client, &self.labels)
|
|
||||||
.await?;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(query) = self.query.as_ref() {
|
if let Some(query) = self.query.as_ref() {
|
||||||
messages_to_delete.message_list().set_query(query)
|
client.set_query(query)
|
||||||
}
|
}
|
||||||
|
|
||||||
log::trace!("Max results: `{}`", self.max_results);
|
log::trace!("Max results: `{}`", self.max_results);
|
||||||
messages_to_delete
|
client.set_max_results(self.max_results);
|
||||||
.message_list()
|
log::debug!("List max results set to {}", client.max_results());
|
||||||
.set_max_results(self.max_results);
|
|
||||||
log::debug!(
|
|
||||||
"List max results set to {}",
|
|
||||||
messages_to_delete.message_list().max_results()
|
|
||||||
);
|
|
||||||
|
|
||||||
messages_to_delete.prepare(self.pages).await?;
|
client.prepare(self.pages).await?;
|
||||||
|
|
||||||
if self.execute {
|
if self.execute {
|
||||||
messages_to_delete.batch_delete().await?;
|
client.batch_delete().await?;
|
||||||
log::info!("Messages deleted.");
|
log::info!("Messages deleted.");
|
||||||
} else {
|
} else {
|
||||||
log::info!("Messages not deleted.");
|
log::info!("Messages not deleted.");
|
||||||
|
|||||||
Reference in New Issue
Block a user