♻️ refactor(delete): restructure delete functionality
- remove Delete struct - implement Delete trait for GmailClient - move prepare and batch_delete functions to GmailClient - update imports to reflect changes
This commit is contained in:
committed by
Jeremiah Russell
parent
2ef8f2f7f3
commit
0ebfde4912
@@ -1,40 +1,33 @@
|
|||||||
use google_gmail1::api::BatchDeleteMessagesRequest;
|
use google_gmail1::api::BatchDeleteMessagesRequest;
|
||||||
|
|
||||||
use crate::{GmailClient, MessageList, Result};
|
use crate::{GmailClient, Result, message_list::MessageList};
|
||||||
|
|
||||||
/// Struct for deleting messages
|
// /// Struct for deleting messages
|
||||||
#[derive(Debug)]
|
// #[derive(Debug)]
|
||||||
pub struct Delete {
|
// pub struct Delete {
|
||||||
message_list: MessageList,
|
// message_list: MessageList,
|
||||||
}
|
// }
|
||||||
|
|
||||||
impl Delete {
|
pub(crate) trait Delete {
|
||||||
/// Create a new Delete struct
|
async fn batch_delete(&self) -> Result<()>;
|
||||||
pub async fn new(client: &GmailClient) -> Result<Self> {
|
async fn prepare(&mut self, pages: u32) -> Result<()>;
|
||||||
let message_list = MessageList::new(client).await?;
|
|
||||||
Ok(Delete { message_list })
|
|
||||||
}
|
|
||||||
|
|
||||||
/// return the message list struct
|
|
||||||
pub fn message_list(&mut self) -> &mut MessageList {
|
|
||||||
&mut self.message_list
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Delete for GmailClient {
|
||||||
/// Prepare the message list for delete to be completed on execute by batch_delete
|
/// Prepare the message list for delete to be completed on execute by batch_delete
|
||||||
pub async fn prepare(&mut self, pages: u32) -> Result<()> {
|
async fn prepare(&mut self, pages: u32) -> Result<()> {
|
||||||
self.message_list.run(pages).await
|
self.run(pages).await
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Run the batch delete on the selected messages
|
/// Run the batch delete on the selected messages
|
||||||
pub async fn batch_delete(&self) -> Result<()> {
|
async fn batch_delete(&self) -> Result<()> {
|
||||||
let ids = Some(self.message_list.message_ids());
|
let ids = Some(self.message_ids());
|
||||||
|
|
||||||
let batch_request = BatchDeleteMessagesRequest { ids };
|
let batch_request = BatchDeleteMessagesRequest { ids };
|
||||||
|
|
||||||
log::trace!("{batch_request:#?}");
|
log::trace!("{batch_request:#?}");
|
||||||
|
|
||||||
let _res = self
|
let _res = self
|
||||||
.message_list
|
|
||||||
.hub()
|
.hub()
|
||||||
.users()
|
.users()
|
||||||
.messages_batch_delete(batch_request, "me")
|
.messages_batch_delete(batch_request, "me")
|
||||||
@@ -43,7 +36,7 @@ impl Delete {
|
|||||||
.await
|
.await
|
||||||
.map_err(Box::new)?;
|
.map_err(Box::new)?;
|
||||||
|
|
||||||
for m in self.message_list.messages() {
|
for m in self.messages() {
|
||||||
log::info!("Message with subject `{}` deleted.", m.subject());
|
log::info!("Message with subject `{}` deleted.", m.subject());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user