Lines
0 %
Functions
Branches
100 %
use axum::Json;
use axum::response::IntoResponse;
use serde::Deserialize;
use crate::pages::HtmlTemplate;
use crate::pages::validation::feedback::ValidationFeedback;
#[derive(Deserialize)]
pub struct NameValidation {
name: Option<String>,
}
pub async fn validate_name(Json(form): Json<NameValidation>) -> impl IntoResponse {
let name = match &form.name {
Some(s) if !s.trim().is_empty() => s,
_ => return HtmlTemplate(ValidationFeedback::error("Account name is required")),
};
if name.len() < 2 {
return HtmlTemplate(ValidationFeedback::error("Account name is too short"));
if name.len() > 50 {
return HtmlTemplate(ValidationFeedback::error(
"Account name is too long (max 50 characters)",
));
HtmlTemplate(ValidationFeedback::success("Valid account name"))