feat(message_list): enhance message list functionality and debugging

- implement Debug trait for MessageList struct for better debugging
- add getter methods for message_ids, label_ids, and hub for external access
- change log level check to include Info and higher for message subject logging
This commit is contained in:
Jeremiah Russell
2025-10-06 09:53:23 +01:00
committed by Jeremiah Russell
parent b7792bedc6
commit f7a8066f66

View File

@@ -1,3 +1,5 @@
use std::fmt::Debug;
use google_gmail1::{ use google_gmail1::{
Gmail, Gmail,
api::ListMessagesResponse, api::ListMessagesResponse,
@@ -23,6 +25,17 @@ pub struct MessageList {
query: String, query: String,
} }
impl Debug for MessageList {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("MessageList")
.field("max_results", &self.max_results)
.field("label_ids", &self.label_ids)
.field("message_ids", &self.message_ids)
.field("query", &self.query)
.finish()
}
}
impl MessageList { impl MessageList {
/// Create a new List struct and add the Gmail api connection. /// Create a new List struct and add the Gmail api connection.
pub async fn new(credential: &str) -> Result<Self, Error> { pub async fn new(credential: &str) -> Result<Self, Error> {
@@ -86,6 +99,21 @@ impl MessageList {
self.query = query.to_string() self.query = query.to_string()
} }
/// Get a reference to the message_ids
pub fn message_ids(&self) -> Vec<String> {
self.message_ids.clone()
}
/// Get a reference to the message_ids
pub fn label_ids(&self) -> Vec<String> {
self.label_ids.clone()
}
/// Get the hub
pub fn hub(&self) -> Gmail<HttpsConnector<HttpConnector>> {
self.hub.clone()
}
/// Run the Gmail api as configured /// Run the Gmail api as configured
pub async fn run(&mut self, pages: u32) -> Result<(), Error> { pub async fn run(&mut self, pages: u32) -> Result<(), Error> {
let list = self.messages_list(None).await?; let list = self.messages_list(None).await?;
@@ -117,7 +145,7 @@ impl MessageList {
} }
} }
if log::max_level() <= log::Level::Info { if log::max_level() >= log::Level::Info {
self.log_message_subjects().await?; self.log_message_subjects().await?;
} }