diff --git a/apps/users/src/handlers/auth.rs b/apps/users/src/handlers/auth.rs index b0cd0ae..27e12a5 100644 --- a/apps/users/src/handlers/auth.rs +++ b/apps/users/src/handlers/auth.rs @@ -41,6 +41,8 @@ pub struct RegisterPayload { pub last_name: Option, #[serde(default)] pub full_name: Option, + #[serde(default)] + pub name: Option, pub email: String, pub phone: Option, pub password: String, @@ -202,10 +204,11 @@ async fn register( let password_hash = hash_password(&payload.password) .map_err(|e| err(StatusCode::INTERNAL_SERVER_ERROR, &e.to_string(), "INTERNAL_ERROR"))?; - let full_name = match (&payload.first_name, &payload.last_name, &payload.full_name) { - (Some(fn_), Some(ln_), _) => format!("{} {}", fn_.trim(), ln_.trim()).trim().to_string(), - (_, _, Some(fn_)) => fn_.trim().to_string(), - _ => return Err(err(StatusCode::UNPROCESSABLE_ENTITY, "first_name and last_name are required", "VALIDATION_ERROR")), + let full_name = match (&payload.first_name, &payload.last_name, &payload.full_name, &payload.name) { + (Some(fn_), Some(ln_), _, _) => format!("{} {}", fn_.trim(), ln_.trim()).trim().to_string(), + (_, _, Some(fn_), _) => fn_.trim().to_string(), + (_, _, _, Some(n)) => n.trim().to_string(), + _ => return Err(err(StatusCode::UNPROCESSABLE_ENTITY, "Name is required (full_name or first_name+last_name)", "VALIDATION_ERROR")), }; let user = UserRepository::create(&state.pool, CreateUserPayload {