♻️ refactor(message): improve subject logging with early returns
- use early returns and `else` blocks for better readability and reduced nesting - add a log message to indicate emails with no subject
This commit is contained in:
committed by
Jeremiah Russell
parent
7ba4b09fc2
commit
cbe61ab2f3
@@ -163,41 +163,47 @@ impl Message {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async fn log_message_subjects(&self, list: &ListMessagesResponse) -> Result<(), Error> {
|
async fn log_message_subjects(&self, list: &ListMessagesResponse) -> Result<(), Error> {
|
||||||
if let Some(messages) = &list.messages {
|
let Some(messages) = &list.messages else {
|
||||||
for message in messages {
|
return Ok(());
|
||||||
if let Some(id) = &message.id {
|
};
|
||||||
log::trace!("{id}");
|
|
||||||
let (_res, m) = self
|
|
||||||
.hub
|
|
||||||
.users()
|
|
||||||
.messages_get("me", id)
|
|
||||||
.add_scope("https://www.googleapis.com/auth/gmail.metadata")
|
|
||||||
.format("metadata")
|
|
||||||
.add_metadata_headers("subject")
|
|
||||||
.doit()
|
|
||||||
.await
|
|
||||||
.map_err(Box::new)?;
|
|
||||||
|
|
||||||
let mut subject = String::new();
|
for message in messages {
|
||||||
if let Some(payload) = m.payload {
|
let Some(id) = &message.id else { continue };
|
||||||
if let Some(headers) = payload.headers {
|
log::trace!("{id}");
|
||||||
for header in headers {
|
let (_res, m) = self
|
||||||
if header.name.is_some()
|
.hub
|
||||||
&& header.name.unwrap() == "Subject"
|
.users()
|
||||||
&& header.value.is_some()
|
.messages_get("me", id)
|
||||||
{
|
.add_scope("https://www.googleapis.com/auth/gmail.metadata")
|
||||||
subject = header.value.unwrap();
|
.format("metadata")
|
||||||
break;
|
.add_metadata_headers("subject")
|
||||||
} else {
|
.doit()
|
||||||
continue;
|
.await
|
||||||
}
|
.map_err(Box::new)?;
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
log::info!("{subject:?}");
|
let mut subject = String::new();
|
||||||
|
let Some(payload) = m.payload else { continue };
|
||||||
|
let Some(headers) = payload.headers else {
|
||||||
|
continue;
|
||||||
|
};
|
||||||
|
|
||||||
|
for header in headers {
|
||||||
|
if header.name.is_some()
|
||||||
|
&& header.name.unwrap() == "Subject"
|
||||||
|
&& header.value.is_some()
|
||||||
|
{
|
||||||
|
subject = header.value.unwrap();
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if subject.is_empty() {
|
||||||
|
log::info!("***Email with no subject***");
|
||||||
|
} else {
|
||||||
|
log::info!("{subject:?}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|||||||
Reference in New Issue
Block a user