fix(auth): also accept 'name' field for signup compatibility
Frontend sends 'name' field directly. RegisterPayload now accepts: - name (direct, used by frontend) - full_name (legacy) - first_name + last_name (new format)
This commit is contained in:
parent
63eb27a160
commit
1d50d21f00
1 changed files with 7 additions and 4 deletions
|
|
@ -41,6 +41,8 @@ pub struct RegisterPayload {
|
|||
pub last_name: Option<String>,
|
||||
#[serde(default)]
|
||||
pub full_name: Option<String>,
|
||||
#[serde(default)]
|
||||
pub name: Option<String>,
|
||||
pub email: String,
|
||||
pub phone: Option<String>,
|
||||
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 {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue