feat: return JSON responses for email registration errors and success messages

This commit is contained in:
itsscb 2025-03-14 23:19:39 +01:00
parent cf0d894092
commit 70f7f67d9c

View File

@ -7,6 +7,7 @@ use lettre::message::header::ContentType;
use lettre::transport::smtp::authentication::Credentials; use lettre::transport::smtp::authentication::Credentials;
use lettre::{Message, SmtpTransport, Transport}; use lettre::{Message, SmtpTransport, Transport};
use serde::Deserialize; use serde::Deserialize;
use serde_json::json;
use std::fmt::Debug; use std::fmt::Debug;
use std::str::FromStr; use std::str::FromStr;
use tracing::{error, info, instrument, warn}; use tracing::{error, info, instrument, warn};
@ -26,7 +27,7 @@ pub async fn register(
Err(e) => { Err(e) => {
let err = format!("Invalid email address: {e}"); let err = format!("Invalid email address: {e}");
warn!(email = mail.email_address, error = %err); warn!(email = mail.email_address, error = %err);
return (StatusCode::BAD_REQUEST, err); return (StatusCode::BAD_REQUEST, Json(json!({"error": err})));
} }
}; };
info!(email = mail.email_address, "RegistrationRequest received"); info!(email = mail.email_address, "RegistrationRequest received");
@ -55,12 +56,18 @@ pub async fn register(
match mailer.send(&verification_email) { match mailer.send(&verification_email) {
Ok(_) => { Ok(_) => {
info!(email = mail.email_address, "Verification email sent"); info!(email = mail.email_address, "Verification email sent");
(StatusCode::OK, "Verification email sent".to_string()) (
StatusCode::OK,
Json(json!({"msg":"Verification email sent"})),
)
} }
Err(e) => { Err(e) => {
let err = format!("Failed to send verification email: {e}"); let err = format!("Failed to send verification email: {e}");
error!(error = %err); error!(error = %err);
(StatusCode::INTERNAL_SERVER_ERROR, err) (
StatusCode::INTERNAL_SERVER_ERROR,
Json(json!({"error": err})),
)
} }
} }
} }