Skip to content

Commit

Permalink
feat: Add "lost username" template
Browse files Browse the repository at this point in the history
  • Loading branch information
JadedBlueEyes committed Aug 21, 2024
1 parent 794be20 commit be3b8f7
Show file tree
Hide file tree
Showing 3 changed files with 81 additions and 0 deletions.
7 changes: 7 additions & 0 deletions locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,12 @@
"action_password": "You can then request a password reset, if needed, from the link below:",
"in_error": "If you didn't initiate this request and feel that you've received this email in error, don't worry, you don't need to take any further action and can safely disregard this email.",
"second_account": "If you have a specific reason why you need a second account (for example, you want to run a bot and have notes also reach you at this address) please drop us a line. We will look into your specific case."
},
"lost_username": {
"title": "Lost username",
"info": "Someone, probably you, asked to look up the username of the MusicBrainz account associated with this email address.",
"username_is": "Your MusicBrainz username is: { user_name }",
"reset_password": "If you have also forgotten your password, use this username and your email address to reset your password here:",
"in_error": "If you didn't initiate this request and feel that you've received this email in error, don't worry, you don't need to take any further action and can safely disregard this email."
}
}
2 changes: 2 additions & 0 deletions src/templates.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ mod basic;
mod edit_note;
mod editor_message;
mod email_in_use;
mod lost_username;
mod reset_password;
mod subscription;
mod verify_email;
Expand All @@ -27,6 +28,7 @@ pub fn get(template_id: &str) -> Option<Template> {
"verify-email" => Some(verify_email::verify_email),
"email-in-use" => Some(email_in_use::email_in_use),
"reset-password" => Some(reset_password::reset_password),
"lost-username" => Some(lost_username::lost_username),
_ => None,
}
}
72 changes: 72 additions & 0 deletions src/templates/lost_username.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
use std::borrow::Borrow;

use mf1::t_l_string as tl;
use mrml::{mjml::Mjml, text::Text};
use mrmx::WithAttribute;
use mrmx_macros::view;
use serde::Deserialize;
use serde_json::Value;

use crate::{components::*, Locale};

use super::TemplateError;

#[derive(Deserialize, Debug, Default)]
#[serde(default)]
struct EmailInUse {
to_name: String,
lost_password_url: String,
// ip?
}

pub(crate) fn lost_username(params: Value, l: Locale) -> Result<Mjml, TemplateError> {
let ctx: Option<EmailInUse> = serde_json::from_value(params)?;
let EmailInUse {
ref to_name,
ref lost_password_url,
} = ctx.unwrap_or_default();
Ok(view! {
<mjml>
<mj-head>
{ head().into() }
<mj-title>{ tl!(l, lost_username.title ).borrow() }</mj-title>
</mj-head>
<mj-body width="500px" padding="0">
<mj-section padding="20px 0">
<mj-column padding="0">
{ header().into() }

<mj-text>
<p>{ Text::from(tl!(l, greeting_line, name = to_name)).into() }</p>
<p>{ Text::from(tl!(l, lost_username.info )).into() }</p>
<p>{ Text::from(tl!(l, lost_username.username_is, user_name = to_name )).into() }</p>
<p>{ Text::from(tl!(l, lost_username.reset_password )).into() }</p>
</mj-text>

<mj-wrapper mj-class="wrapper">
<mj-text>
<p>
<a href={lost_password_url}>{ Text::from(lost_password_url).into()}</a>
</p>
</mj-text>
</mj-wrapper>

<mj-text>
<p>{ Text::from(tl!(l, link_copy_info)).into() }</p>
<p>{ Text::from(tl!(l, lost_username.in_error)).into() }</p>
</mj-text>

<mj-text>
<p><em>{ Text::from(tl!(l, metabrainz_signoff)).into() }</em></p>
</mj-text>
<mj-divider padding="10px 15px" border-color="#F5F5F5" border-width="3px" />
<mj-text font-size="12px" color="#8D8D8D">
<p>{ Text::from(tl!(l, do_not_reply)).into() }</p>
</mj-text>
</mj-column>
</mj-section>
</mj-body>
</mjml>

})
}

0 comments on commit be3b8f7

Please sign in to comment.