Remove failed_submission and unneeded async
This commit is contained in:
parent
aef4a809d6
commit
0e26e36e46
1 changed files with 14 additions and 32 deletions
|
@ -16,6 +16,7 @@ use crate::{
|
|||
templates,
|
||||
};
|
||||
|
||||
/// Parameters to render the contact form.
|
||||
pub struct ContactFormParams<'a> {
|
||||
config: Arc<Config>,
|
||||
captcha_solutions: Arc<Mutex<CaptchaSolutions>>,
|
||||
|
@ -35,10 +36,9 @@ pub async fn index(
|
|||
persistant_fields: None,
|
||||
error_message: None,
|
||||
})
|
||||
.await
|
||||
}
|
||||
|
||||
pub async fn render_contact_form(params: ContactFormParams<'_>) -> Result<Response, AppError> {
|
||||
pub fn render_contact_form(params: ContactFormParams<'_>) -> Result<Response, AppError> {
|
||||
let captcha = captcha::by_name(captcha::Difficulty::Easy, captcha::CaptchaName::Lucy);
|
||||
let captcha_base64 = captcha.as_base64().context("Failed to create a captcha!")?;
|
||||
|
||||
|
@ -62,22 +62,6 @@ pub async fn render_contact_form(params: ContactFormParams<'_>) -> Result<Respon
|
|||
Ok(template.into_response())
|
||||
}
|
||||
|
||||
async fn failed_submission(
|
||||
config: Arc<Config>,
|
||||
captcha_solutions: Arc<Mutex<CaptchaSolutions>>,
|
||||
error_message: &str,
|
||||
form: ContactForm,
|
||||
) -> Result<Response, AppError> {
|
||||
let params = ContactFormParams {
|
||||
config,
|
||||
captcha_solutions,
|
||||
persistant_fields: Some(form.persistant_fields),
|
||||
error_message: Some(error_message),
|
||||
};
|
||||
|
||||
render_contact_form(params).await
|
||||
}
|
||||
|
||||
pub async fn submit(
|
||||
State(config): State<Arc<Config>>,
|
||||
State(captcha_solutions): State<Arc<Mutex<CaptchaSolutions>>>,
|
||||
|
@ -92,13 +76,12 @@ pub async fn submit(
|
|||
if !right_captcha_answer {
|
||||
info!("Wrong CAPTCHA");
|
||||
|
||||
return failed_submission(
|
||||
Arc::clone(&config),
|
||||
return render_contact_form(ContactFormParams {
|
||||
config: Arc::clone(&config),
|
||||
captcha_solutions,
|
||||
&config.error_messages.captcha_error,
|
||||
form,
|
||||
)
|
||||
.await;
|
||||
persistant_fields: Some(form.persistant_fields),
|
||||
error_message: Some(&config.error_messages.captcha_error),
|
||||
});
|
||||
}
|
||||
|
||||
match mailer
|
||||
|
@ -114,20 +97,19 @@ pub async fn submit(
|
|||
Err(e) => {
|
||||
error!("{e:?}");
|
||||
|
||||
return failed_submission(
|
||||
Arc::clone(&config),
|
||||
return render_contact_form(ContactFormParams {
|
||||
config: Arc::clone(&config),
|
||||
captcha_solutions,
|
||||
&config.error_messages.email_error,
|
||||
form,
|
||||
)
|
||||
.await;
|
||||
persistant_fields: Some(form.persistant_fields),
|
||||
error_message: Some(&config.error_messages.email_error),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
success(config).await
|
||||
success(config)
|
||||
}
|
||||
|
||||
pub async fn success(config: Arc<Config>) -> Result<Response, AppError> {
|
||||
pub fn success(config: Arc<Config>) -> Result<Response, AppError> {
|
||||
info!("Successful contact form submission");
|
||||
|
||||
let template = templates::Success {
|
||||
|
|
Loading…
Reference in a new issue