From cd7a8943348d851ad891eae6792143bc27e40c99 Mon Sep 17 00:00:00 2001
From: Philippe Loctaux
Date: Fri, 14 Jul 2023 16:38:08 +0200
Subject: [PATCH] email: pass template_dir in config
---
crates/email/src/lib.rs | 14 +++---
crates/ezidam/ezidam.toml | 1 +
crates/ezidam/src/email.rs | 4 +-
crates/ezidam/src/routes/admin/users.rs | 49 +++++++++++--------
.../ezidam/src/routes/root/forgot_password.rs | 47 ++++++++++--------
5 files changed, 66 insertions(+), 49 deletions(-)
diff --git a/crates/email/src/lib.rs b/crates/email/src/lib.rs
index 07cef0b..dca963a 100644
--- a/crates/email/src/lib.rs
+++ b/crates/email/src/lib.rs
@@ -37,13 +37,12 @@ pub enum Error {
const TEMPLATE_EXT: &str = ".mjml.tera";
-pub fn render_template(name: &str, content: C) -> Result {
- let base_dir = if cfg!(debug_assertions) {
- format!("{}/templates", env!("CARGO_MANIFEST_DIR"))
- } else {
- "./email-templates".into()
- };
- let templates = format!("{base_dir}/**/*{TEMPLATE_EXT}",);
+pub fn render_template(
+ name: &str,
+ template_dir: &str,
+ content: C,
+) -> Result {
+ let templates = format!("{template_dir}/**/*{TEMPLATE_EXT}");
// Initialize tera templates
let tera = Tera::new(&templates)?;
@@ -75,6 +74,7 @@ pub enum Transport {
#[derive(Debug, Deserialize)]
pub struct Config {
+ pub template_dir: String,
pub from: String,
pub transport: Transport,
pub host: String,
diff --git a/crates/ezidam/ezidam.toml b/crates/ezidam/ezidam.toml
index e0d79cc..4b3664e 100644
--- a/crates/ezidam/ezidam.toml
+++ b/crates/ezidam/ezidam.toml
@@ -8,6 +8,7 @@ url = "../../database/ezidam.sqlite"
# remove this section to disable sending email
[default.email]
+template_dir = "../email/templates"
from = "ezidam "
transport = "unencrypted"
host = "localhost"
diff --git a/crates/ezidam/src/email.rs b/crates/ezidam/src/email.rs
index 0fd9bab..cd47150 100644
--- a/crates/ezidam/src/email.rs
+++ b/crates/ezidam/src/email.rs
@@ -11,8 +11,8 @@ pub fn init(config: &Figment) -> Result