use serde::{Deserialize, Serialize};
pub const SEND_EMAIL_ENDPOINT: &str =
"https://gmail.googleapis.com/gmail/v1/users/me/messages/send";
pub const SEND_EMAIL_QUERY_PARAMETERS: [(&str, &str); 2] =
[("alt", "json"), ("prettyPrint", "false")];
#[derive(Serialize, Deserialize)]
pub struct GoogleSendEmailRequest {
raw: String,
}
impl GoogleSendEmailRequest {
pub fn new(from: &str, to: &str, subject: &str, content: &str) -> Self {
let raw_message = base64::encode(format!(
"From: {}\r\nTo: {}\r\nSubject: {}\r\n\r\n{}\r\n",
from, to, subject, content
));
Self { raw: raw_message }
}
}
#[derive(Serialize, Deserialize)]
#[allow(dead_code)]
#[serde(rename_all = "camelCase")]
pub struct GoogleSendEmailResponse {
id: String,
thread_id: String,
label_ids: Vec<String>,
}
pub fn mock_print_email(receiver_email: &str, subject: &str, content: &str, send_from_email: &str) {
println!(
"MOCK MODE SEND EMAIL
Sending from {} to {}
Subject: {}
Content: {}
",
send_from_email, receiver_email, subject, content
);
}