From 5c63c56ba7104fe6b1d6d2fb520098019bb9b7fc Mon Sep 17 00:00:00 2001 From: Tolmachev Igor Date: Wed, 24 Sep 2025 20:05:37 +0300 Subject: Fix /change/name method --- src/routers/account.rs | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) (limited to 'src/routers/account.rs') diff --git a/src/routers/account.rs b/src/routers/account.rs index bb1cde5..a6fce99 100644 --- a/src/routers/account.rs +++ b/src/routers/account.rs @@ -78,12 +78,11 @@ struct ChangeUsernameRequest { #[derive(Deserialize, ToSchema)] #[schema(description = "Change account name data")] -#[serde(rename_all = "snake_case")] -enum ChangeNameRequest { +struct ChangeNameRequest { #[schema(examples("John", "Иван"))] - FirstName(String), + first_name: Option, #[schema(examples("Doe", "Иванов"))] - LastName(String), + last_name: Option, } #[derive(Deserialize, ToSchema)] @@ -98,6 +97,7 @@ struct DeleteUserRequest { path = "/me", tag = ACCOUNT, summary = "Get me", + description = "Get your account information", responses( ( status = 200, body = SuccessResponse, @@ -116,6 +116,8 @@ async fn me(Auth(user): Auth) -> ApiResult { path = "/register", tag = ACCOUNT, summary = "Register", + description = "Register a new account", + request_body = RegisterRequest, responses( ( status = 200, body = SuccessResponse, @@ -123,7 +125,6 @@ async fn me(Auth(user): Auth) -> ApiResult { ), GlobalResponses ), - request_body = RegisterRequest )] async fn register( State(state): State, @@ -161,6 +162,8 @@ async fn register( path = "/login", tag = ACCOUNT, summary = "Login", + description = "Get auth data", + request_body = LoginRequest, responses( ( status = 200, body = SuccessResponse, @@ -168,7 +171,6 @@ async fn register( ), GlobalResponses ), - request_body = LoginRequest )] async fn login( State(state): State, @@ -204,6 +206,7 @@ async fn login( path = "/change/password", tag = ACCOUNT, summary = "Change password", + description = "Change your account password", request_body = ChangePasswordRequest, responses( ( @@ -236,6 +239,7 @@ async fn change_password( path = "/change/username", tag = ACCOUNT, summary = "Change username", + description = "Change your account username", request_body = ChangeUsernameRequest, responses( ( @@ -276,6 +280,7 @@ async fn change_username( path = "/change/name", tag = ACCOUNT, summary = "Change name", + description = "Change your account first or last name", request_body = ChangeNameRequest, responses( ( @@ -292,22 +297,16 @@ async fn change_name( ApiJson(req): ApiJson, ) -> ApiResult { let mut active_user = user.into_active_model(); - match req { - ChangeNameRequest::FirstName(new_first_name) => { - active_user.first_name = Set(new_first_name); - } - ChangeNameRequest::LastName(new_last_name) => { - active_user.first_name = Set(new_last_name); - } + + if let Some(first_name) = req.first_name { + active_user.first_name = Set(first_name); + } + if let Some(last_name) = req.last_name { + active_user.last_name = Set(last_name); } let user = active_user.update(&state.db).await?; - Ok(SuccessResponse::ok(Account { - id: user.id, - username: user.username, - first_name: user.first_name, - last_name: user.last_name, - })) + Ok(SuccessResponse::ok(user.into())) } #[utoipa::path( @@ -315,6 +314,7 @@ async fn change_name( path = "/delete", tag = ACCOUNT, summary = "Delete", + description = "Delete your account", request_body = DeleteUserRequest, responses( ( -- cgit v1.2.3