Refactor MessageTemplate initialization to use Context directly instead of Tr and user parameters

This commit is contained in:
Greg Burri 2025-04-30 11:26:53 +02:00
parent c8e0aa918c
commit 710a134966
4 changed files with 49 additions and 151 deletions

View file

@ -4,7 +4,7 @@ use crate::{
app::Context,
data::{db, model},
log::Log,
translation::{self, Sentence, Tr},
translation::{self, Sentence},
};
pub struct Recipes {
@ -84,29 +84,9 @@ pub struct MessageTemplate<'a> {
}
impl<'a> MessageTemplate<'a> {
pub fn new(message: &'a str, tr: Tr) -> MessageTemplate<'a> {
pub fn new(message: &'a str, context: Context) -> MessageTemplate<'a> {
MessageTemplate {
context: Context {
user: None,
tr,
dark_theme: false,
},
message,
as_code: false,
}
}
pub fn new_with_user(
message: &'a str,
tr: Tr,
user: Option<model::User>,
) -> MessageTemplate<'a> {
MessageTemplate {
context: Context {
user,
tr,
dark_theme: false,
},
context,
message,
as_code: false,
}

View file

@ -98,14 +98,7 @@ pub async fn dev_panel(
} else {
Ok((
StatusCode::UNAUTHORIZED,
Html(
MessageTemplate::new_with_user(
consts::NOT_AUTHORIZED_MESSAGE,
context.tr,
context.user,
)
.render()?,
),
Html(MessageTemplate::new(consts::NOT_AUTHORIZED_MESSAGE, context).render()?),
)
.into_response())
}
@ -152,14 +145,7 @@ pub async fn logs(
} else {
Ok((
StatusCode::UNAUTHORIZED,
Html(
MessageTemplate::new_with_user(
consts::NOT_AUTHORIZED_MESSAGE,
context.tr,
context.user,
)
.render()?,
),
Html(MessageTemplate::new(consts::NOT_AUTHORIZED_MESSAGE, context).render()?),
)
.into_response())
}
@ -171,6 +157,6 @@ pub async fn logs(
pub async fn not_found(Extension(context): Extension<Context>) -> Result<impl IntoResponse> {
Ok((
StatusCode::NOT_FOUND,
Html(MessageTemplate::new_with_user("404: Not found", context.tr, context.user).render()?),
Html(MessageTemplate::new("404: Not found", context).render()?),
))
}

View file

@ -27,7 +27,7 @@ pub async fn create(
.into_response())
} else {
Ok(
Html(MessageTemplate::new(context.tr.t(Sentence::NotLoggedIn), context.tr).render()?)
Html(MessageTemplate::new(context.tr.t(Sentence::NotLoggedIn), context).render()?)
.into_response(),
)
}
@ -59,24 +59,20 @@ pub async fn edit(
.into_response())
} else {
Ok(Html(
MessageTemplate::new(
context.tr.t(Sentence::RecipeNotAllowedToEdit),
context.tr,
)
.render()?,
MessageTemplate::new(context.tr.t(Sentence::RecipeNotAllowedToEdit), context)
.render()?,
)
.into_response())
}
} else {
Ok(Html(
MessageTemplate::new(context.tr.t(Sentence::RecipeNotFound), context.tr)
.render()?,
MessageTemplate::new(context.tr.t(Sentence::RecipeNotFound), context).render()?,
)
.into_response())
}
} else {
Ok(
Html(MessageTemplate::new(context.tr.t(Sentence::NotLoggedIn), context.tr).render()?)
Html(MessageTemplate::new(context.tr.t(Sentence::NotLoggedIn), context).render()?)
.into_response(),
)
}
@ -94,12 +90,11 @@ pub async fn view(
&& (context.user.is_none() || recipe.user_id != context.user.as_ref().unwrap().id)
{
return Ok(Html(
MessageTemplate::new_with_user(
MessageTemplate::new(
&context
.tr
.tp(Sentence::RecipeNotAllowedToView, &[Box::new(recipe_id)]),
context.tr,
context.user,
context,
)
.render()?,
)
@ -123,12 +118,7 @@ pub async fn view(
.into_response())
}
None => Ok(Html(
MessageTemplate::new_with_user(
context.tr.t(Sentence::RecipeNotFound),
context.tr,
context.user,
)
.render()?,
MessageTemplate::new(context.tr.t(Sentence::RecipeNotFound), context).render()?,
)
.into_response()),
}

View file

@ -52,15 +52,10 @@ pub async fn sign_up_get(
)
.into_response())
} else {
Ok(Html(
MessageTemplate::new_with_user(
context.tr.t(Sentence::SignUpClosed),
context.tr,
context.user,
)
.render()?,
Ok(
Html(MessageTemplate::new(context.tr.t(Sentence::SignUpClosed), context).render()?)
.into_response(),
)
.into_response())
}
}
@ -130,12 +125,7 @@ pub async fn sign_up_post(
if !connection.get_new_user_registration_enabled().await? {
return Ok(Html(
MessageTemplate::new_with_user(
context.tr.t(Sentence::SignUpClosed),
context.tr,
context.user,
)
.render()?,
MessageTemplate::new(context.tr.t(Sentence::SignUpClosed), context).render()?,
)
.into_response());
}
@ -186,12 +176,8 @@ pub async fn sign_up_post(
.await
{
Ok(()) => Ok(Html(
MessageTemplate::new_with_user(
context.tr.t(Sentence::SignUpEmailSent),
context.tr,
context.user,
)
.render()?,
MessageTemplate::new(context.tr.t(Sentence::SignUpEmailSent), context)
.render()?,
)
.into_response()),
Err(_) => error_response(SignUpError::UnableSendEmail, &form_data, context),
@ -218,12 +204,8 @@ pub async fn sign_up_validation(
return Ok((
jar,
Html(
MessageTemplate::new_with_user(
context.tr.t(Sentence::ValidationUserAlreadyExists),
context.tr,
context.user,
)
.render()?,
MessageTemplate::new(context.tr.t(Sentence::ValidationUserAlreadyExists), context)
.render()?,
),
));
}
@ -248,10 +230,9 @@ pub async fn sign_up_validation(
Ok((
jar,
Html(
MessageTemplate::new_with_user(
MessageTemplate::new(
context.tr.t(Sentence::SignUpEmailValidationSuccess),
context.tr,
user,
Context { user, ..context },
)
.render()?,
),
@ -262,10 +243,9 @@ pub async fn sign_up_validation(
Ok((
jar,
Html(
MessageTemplate::new_with_user(
MessageTemplate::new(
context.tr.t(Sentence::SignUpValidationExpired),
context.tr,
context.user,
context,
)
.render()?,
),
@ -276,10 +256,9 @@ pub async fn sign_up_validation(
Ok((
jar,
Html(
MessageTemplate::new_with_user(
MessageTemplate::new(
context.tr.t(Sentence::SignUpValidationErrorTryAgain),
context.tr,
context.user,
context,
)
.render()?,
),
@ -292,12 +271,8 @@ pub async fn sign_up_validation(
Ok((
jar,
Html(
MessageTemplate::new_with_user(
context.tr.t(Sentence::ValidationError),
context.tr,
context.user,
)
.render()?,
MessageTemplate::new(context.tr.t(Sentence::ValidationError), context)
.render()?,
),
))
}
@ -414,10 +389,9 @@ pub async fn sign_out(
pub async fn ask_reset_password_get(Extension(context): Extension<Context>) -> Result<Response> {
if context.user.is_some() {
Ok(Html(
MessageTemplate::new_with_user(
MessageTemplate::new(
context.tr.t(Sentence::AskResetAlreadyLoggedInError),
context.tr,
context.user,
context,
)
.render()?,
)
@ -532,12 +506,8 @@ pub async fn ask_reset_password_post(
.await
{
Ok(()) => Ok(Html(
MessageTemplate::new_with_user(
context.tr.t(Sentence::AskResetEmailSent),
context.tr,
context.user,
)
.render()?,
MessageTemplate::new(context.tr.t(Sentence::AskResetEmailSent), context)
.render()?,
)
.into_response()),
Err(_) => {
@ -588,23 +558,14 @@ pub async fn reset_password_get(
.into_response())
} else {
Ok(Html(
MessageTemplate::new_with_user(
context.tr.t(Sentence::AskResetTokenMissing),
context.tr,
context.user,
)
.render()?,
MessageTemplate::new(context.tr.t(Sentence::AskResetTokenMissing), context)
.render()?,
)
.into_response())
}
} else {
Ok(Html(
MessageTemplate::new_with_user(
context.tr.t(Sentence::AskResetTokenMissing),
context.tr,
context.user,
)
.render()?,
MessageTemplate::new(context.tr.t(Sentence::AskResetTokenMissing), context).render()?,
)
.into_response())
}
@ -692,12 +653,7 @@ pub async fn reset_password_post(
.await
{
Ok(db::user::ResetPasswordResult::Ok) => Ok(Html(
MessageTemplate::new_with_user(
context.tr.t(Sentence::PasswordReset),
context.tr,
context.user,
)
.render()?,
MessageTemplate::new(context.tr.t(Sentence::PasswordReset), context).render()?,
)
.into_response()),
Ok(db::user::ResetPasswordResult::ResetTokenExpired) => {
@ -726,7 +682,7 @@ pub async fn edit_user_get(Extension(context): Extension<Context>) -> Result<Res
)
.into_response()
} else {
Html(MessageTemplate::new(context.tr.t(Sentence::NotLoggedIn), context.tr).render()?)
Html(MessageTemplate::new(context.tr.t(Sentence::NotLoggedIn), context).render()?)
.into_response()
})
}
@ -904,7 +860,7 @@ pub async fn edit_user_post(
.into_response())
} else {
Ok(
Html(MessageTemplate::new(context.tr.t(Sentence::NotLoggedIn), context.tr).render()?)
Html(MessageTemplate::new(context.tr.t(Sentence::NotLoggedIn), context).render()?)
.into_response(),
)
}
@ -923,12 +879,8 @@ pub async fn email_revalidation(
return Ok((
jar,
Html(
MessageTemplate::new_with_user(
context.tr.t(Sentence::ValidationUserAlreadyExists),
context.tr,
context.user,
)
.render()?,
MessageTemplate::new(context.tr.t(Sentence::ValidationUserAlreadyExists), context)
.render()?,
),
));
}
@ -953,10 +905,9 @@ pub async fn email_revalidation(
Ok((
jar,
Html(
MessageTemplate::new_with_user(
MessageTemplate::new(
context.tr.t(Sentence::ValidationSuccessful),
context.tr,
user,
Context { user, ..context },
)
.render()?,
),
@ -967,10 +918,9 @@ pub async fn email_revalidation(
Ok((
jar,
Html(
MessageTemplate::new_with_user(
MessageTemplate::new(
context.tr.t(Sentence::ValidationExpired),
context.tr,
context.user,
context,
)
.render()?,
),
@ -981,10 +931,9 @@ pub async fn email_revalidation(
Ok((
jar,
Html(
MessageTemplate::new_with_user(
MessageTemplate::new(
context.tr.t(Sentence::ValidationErrorTryToSignUpAgain),
context.tr,
context.user,
context,
)
.render()?,
),
@ -994,14 +943,7 @@ pub async fn email_revalidation(
}
None => Ok((
jar,
Html(
MessageTemplate::new_with_user(
context.tr.t(Sentence::ValidationError),
context.tr,
context.user,
)
.render()?,
),
Html(MessageTemplate::new(context.tr.t(Sentence::ValidationError), context).render()?),
)),
}
}