From 1276635a3ea7a3877904023d4acb0e3bb842b457 Mon Sep 17 00:00:00 2001 From: shibao Date: Fri, 14 Apr 2023 19:02:06 -0400 Subject: [PATCH] make emails more efficient --- lib/memex/accounts/email.ex | 25 ++++++++++--------------- priv/gettext/de/LC_MESSAGES/emails.po | 4 ++-- priv/gettext/emails.pot | 4 ++-- priv/gettext/en/LC_MESSAGES/emails.po | 4 ++-- 4 files changed, 16 insertions(+), 21 deletions(-) diff --git a/lib/memex/accounts/email.ex b/lib/memex/accounts/email.ex index cd26453..8984f74 100644 --- a/lib/memex/accounts/email.ex +++ b/lib/memex/accounts/email.ex @@ -29,33 +29,28 @@ defmodule Memex.Email do def generate_email("welcome", user, %{"url" => url}) do user |> base_email(dgettext("emails", "confirm your memEx account")) - |> html_email(:confirm_email_html, %{user: user, url: url}) - |> text_email(:confirm_email_text, %{user: user, url: url}) + |> render_body(:confirm_email, %{user: user, url: url}) end def generate_email("reset_password", user, %{"url" => url}) do user |> base_email(dgettext("emails", "reset your memEx password")) - |> html_email(:reset_password_html, %{user: user, url: url}) - |> text_email(:reset_password_text, %{user: user, url: url}) + |> render_body(:reset_password, %{user: user, url: url}) end def generate_email("update_email", user, %{"url" => url}) do user |> base_email(dgettext("emails", "update your memEx email")) - |> html_email(:update_email_html, %{user: user, url: url}) - |> text_email(:update_email_text, %{user: user, url: url}) + |> render_body(:update_email, %{user: user, url: url}) end - defp html_email(email, atom, assigns) do - heex = apply(EmailHTML, atom, [assigns]) - html = render_to_string(Layouts, "email_html", "html", email: email, inner_content: heex) - email |> html_body(html) - end + defp render_body(email, template, assigns) do + html_heex = apply(EmailHTML, String.to_existing_atom("#{template}_html"), [assigns]) + html = render_to_string(Layouts, "email_html", "html", email: email, inner_content: html_heex) - defp text_email(email, atom, assigns) do - heex = apply(EmailHTML, atom, [assigns]) - text = render_to_string(Layouts, "email_text", "text", email: email, inner_content: heex) - email |> text_body(text) + text_heex = apply(EmailHTML, String.to_existing_atom("#{template}_text"), [assigns]) + text = render_to_string(Layouts, "email_text", "text", email: email, inner_content: text_heex) + + email |> html_body(html) |> text_body(text) end end diff --git a/priv/gettext/de/LC_MESSAGES/emails.po b/priv/gettext/de/LC_MESSAGES/emails.po index afa9826..48a8bef 100644 --- a/priv/gettext/de/LC_MESSAGES/emails.po +++ b/priv/gettext/de/LC_MESSAGES/emails.po @@ -71,7 +71,7 @@ msgstr "" msgid "confirm your memEx account" msgstr "" -#: lib/memex/accounts/email.ex:38 +#: lib/memex/accounts/email.ex:37 #, elixir-autogen, elixir-format, fuzzy msgid "reset your memEx password" msgstr "" @@ -86,7 +86,7 @@ msgstr "" msgid "this email was sent from memEx at %{url}" msgstr "" -#: lib/memex/accounts/email.ex:45 +#: lib/memex/accounts/email.ex:43 #, elixir-autogen, elixir-format, fuzzy msgid "update your memEx email" msgstr "" diff --git a/priv/gettext/emails.pot b/priv/gettext/emails.pot index 5218454..2c0d03f 100644 --- a/priv/gettext/emails.pot +++ b/priv/gettext/emails.pot @@ -71,7 +71,7 @@ msgstr "" msgid "confirm your memEx account" msgstr "" -#: lib/memex/accounts/email.ex:38 +#: lib/memex/accounts/email.ex:37 #, elixir-autogen, elixir-format msgid "reset your memEx password" msgstr "" @@ -86,7 +86,7 @@ msgstr "" msgid "this email was sent from memEx at %{url}" msgstr "" -#: lib/memex/accounts/email.ex:45 +#: lib/memex/accounts/email.ex:43 #, elixir-autogen, elixir-format msgid "update your memEx email" msgstr "" diff --git a/priv/gettext/en/LC_MESSAGES/emails.po b/priv/gettext/en/LC_MESSAGES/emails.po index 2a3c446..a14625e 100644 --- a/priv/gettext/en/LC_MESSAGES/emails.po +++ b/priv/gettext/en/LC_MESSAGES/emails.po @@ -72,7 +72,7 @@ msgstr "" msgid "confirm your memEx account" msgstr "" -#: lib/memex/accounts/email.ex:38 +#: lib/memex/accounts/email.ex:37 #, elixir-autogen, elixir-format, fuzzy msgid "reset your memEx password" msgstr "" @@ -87,7 +87,7 @@ msgstr "" msgid "this email was sent from memEx at %{url}" msgstr "" -#: lib/memex/accounts/email.ex:45 +#: lib/memex/accounts/email.ex:43 #, elixir-autogen, elixir-format, fuzzy msgid "update your memEx email" msgstr ""