use tera::{Error, Tera};
use super::generate_email::AdditionalFields;
pub fn mail_template(
form_name: &str,
form_subject: &str,
form_message: &str,
mail_subject: &str,
form_extra: &AdditionalFields,
template_name: &str,
) -> Result<String, Error> {
let mut tera = Tera::default();
tera.add_raw_templates(vec![
("default.html", include_str!("templates/default.html")),
("welcome.html", include_str!("templates/welcome.html")),
("welcome.txt", include_str!("templates/welcome.txt")),
])?;
let mut ctx = tera::Context::new();
ctx.insert("name", form_name);
ctx.insert("subject", mail_subject);
ctx.insert("message", form_message);
ctx.insert("message_subject", form_subject);
ctx.insert("message_summary", form_extra.message_summary);
if let Some(cta_link) = form_extra.cta_link {
ctx.insert("cta_link", cta_link);
}
if let Some(logo_img) = form_extra.logo_img {
ctx.insert("logo_img", logo_img);
}
if let Some(ordered_items) = form_extra.ordered_items {
ctx.insert("ordered_items", ordered_items.get_line_items().as_slice());
}
tera.render(template_name, &ctx)
}