diff options
| author | Tolmachev Igor <me@igorek.dev> | 2025-09-24 20:05:37 +0300 |
|---|---|---|
| committer | Tolmachev Igor <me@igorek.dev> | 2025-09-24 20:05:37 +0300 |
| commit | 5c63c56ba7104fe6b1d6d2fb520098019bb9b7fc (patch) | |
| tree | 15b1b8c63e89fbcc81477f17705e1345e6959c23 /src/routers | |
| parent | 833cac68c1bbf7dd6680d07406495d57a2706acc (diff) | |
| download | queue_server-5c63c56ba7104fe6b1d6d2fb520098019bb9b7fc.tar.gz queue_server-5c63c56ba7104fe6b1d6d2fb520098019bb9b7fc.zip | |
Fix /change/name method
Diffstat (limited to 'src/routers')
| -rw-r--r-- | src/routers/account.rs | 38 |
1 files changed, 19 insertions, 19 deletions
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 { | |||
| 78 | 78 | ||
| 79 | #[derive(Deserialize, ToSchema)] | 79 | #[derive(Deserialize, ToSchema)] |
| 80 | #[schema(description = "Change account name data")] | 80 | #[schema(description = "Change account name data")] |
| 81 | #[serde(rename_all = "snake_case")] | 81 | struct ChangeNameRequest { |
| 82 | enum ChangeNameRequest { | ||
| 83 | #[schema(examples("John", "Иван"))] | 82 | #[schema(examples("John", "Иван"))] |
| 84 | FirstName(String), | 83 | first_name: Option<String>, |
| 85 | #[schema(examples("Doe", "Иванов"))] | 84 | #[schema(examples("Doe", "Иванов"))] |
| 86 | LastName(String), | 85 | last_name: Option<String>, |
| 87 | } | 86 | } |
| 88 | 87 | ||
| 89 | #[derive(Deserialize, ToSchema)] | 88 | #[derive(Deserialize, ToSchema)] |
| @@ -98,6 +97,7 @@ struct DeleteUserRequest { | |||
| 98 | path = "/me", | 97 | path = "/me", |
| 99 | tag = ACCOUNT, | 98 | tag = ACCOUNT, |
| 100 | summary = "Get me", | 99 | summary = "Get me", |
| 100 | description = "Get your account information", | ||
| 101 | responses( | 101 | responses( |
| 102 | ( | 102 | ( |
| 103 | status = 200, body = SuccessResponse<Account>, | 103 | status = 200, body = SuccessResponse<Account>, |
| @@ -116,6 +116,8 @@ async fn me(Auth(user): Auth) -> ApiResult<Account> { | |||
| 116 | path = "/register", | 116 | path = "/register", |
| 117 | tag = ACCOUNT, | 117 | tag = ACCOUNT, |
| 118 | summary = "Register", | 118 | summary = "Register", |
| 119 | description = "Register a new account", | ||
| 120 | request_body = RegisterRequest, | ||
| 119 | responses( | 121 | responses( |
| 120 | ( | 122 | ( |
| 121 | status = 200, body = SuccessResponse<Account>, | 123 | status = 200, body = SuccessResponse<Account>, |
| @@ -123,7 +125,6 @@ async fn me(Auth(user): Auth) -> ApiResult<Account> { | |||
| 123 | ), | 125 | ), |
| 124 | GlobalResponses | 126 | GlobalResponses |
| 125 | ), | 127 | ), |
| 126 | request_body = RegisterRequest | ||
| 127 | )] | 128 | )] |
| 128 | async fn register( | 129 | async fn register( |
| 129 | State(state): State<AppState>, | 130 | State(state): State<AppState>, |
| @@ -161,6 +162,8 @@ async fn register( | |||
| 161 | path = "/login", | 162 | path = "/login", |
| 162 | tag = ACCOUNT, | 163 | tag = ACCOUNT, |
| 163 | summary = "Login", | 164 | summary = "Login", |
| 165 | description = "Get auth data", | ||
| 166 | request_body = LoginRequest, | ||
| 164 | responses( | 167 | responses( |
| 165 | ( | 168 | ( |
| 166 | status = 200, body = SuccessResponse<Token>, | 169 | status = 200, body = SuccessResponse<Token>, |
| @@ -168,7 +171,6 @@ async fn register( | |||
| 168 | ), | 171 | ), |
| 169 | GlobalResponses | 172 | GlobalResponses |
| 170 | ), | 173 | ), |
| 171 | request_body = LoginRequest | ||
| 172 | )] | 174 | )] |
| 173 | async fn login( | 175 | async fn login( |
| 174 | State(state): State<AppState>, | 176 | State(state): State<AppState>, |
| @@ -204,6 +206,7 @@ async fn login( | |||
| 204 | path = "/change/password", | 206 | path = "/change/password", |
| 205 | tag = ACCOUNT, | 207 | tag = ACCOUNT, |
| 206 | summary = "Change password", | 208 | summary = "Change password", |
| 209 | description = "Change your account password", | ||
| 207 | request_body = ChangePasswordRequest, | 210 | request_body = ChangePasswordRequest, |
| 208 | responses( | 211 | responses( |
| 209 | ( | 212 | ( |
| @@ -236,6 +239,7 @@ async fn change_password( | |||
| 236 | path = "/change/username", | 239 | path = "/change/username", |
| 237 | tag = ACCOUNT, | 240 | tag = ACCOUNT, |
| 238 | summary = "Change username", | 241 | summary = "Change username", |
| 242 | description = "Change your account username", | ||
| 239 | request_body = ChangeUsernameRequest, | 243 | request_body = ChangeUsernameRequest, |
| 240 | responses( | 244 | responses( |
| 241 | ( | 245 | ( |
| @@ -276,6 +280,7 @@ async fn change_username( | |||
| 276 | path = "/change/name", | 280 | path = "/change/name", |
| 277 | tag = ACCOUNT, | 281 | tag = ACCOUNT, |
| 278 | summary = "Change name", | 282 | summary = "Change name", |
| 283 | description = "Change your account first or last name", | ||
| 279 | request_body = ChangeNameRequest, | 284 | request_body = ChangeNameRequest, |
| 280 | responses( | 285 | responses( |
| 281 | ( | 286 | ( |
| @@ -292,22 +297,16 @@ async fn change_name( | |||
| 292 | ApiJson(req): ApiJson<ChangeNameRequest>, | 297 | ApiJson(req): ApiJson<ChangeNameRequest>, |
| 293 | ) -> ApiResult<Account> { | 298 | ) -> ApiResult<Account> { |
| 294 | let mut active_user = user.into_active_model(); | 299 | let mut active_user = user.into_active_model(); |
| 295 | match req { | 300 | |
| 296 | ChangeNameRequest::FirstName(new_first_name) => { | 301 | if let Some(first_name) = req.first_name { |
| 297 | active_user.first_name = Set(new_first_name); | 302 | active_user.first_name = Set(first_name); |
| 298 | } | 303 | } |
| 299 | ChangeNameRequest::LastName(new_last_name) => { | 304 | if let Some(last_name) = req.last_name { |
| 300 | active_user.first_name = Set(new_last_name); | 305 | active_user.last_name = Set(last_name); |
| 301 | } | ||
| 302 | } | 306 | } |
| 303 | 307 | ||
| 304 | let user = active_user.update(&state.db).await?; | 308 | let user = active_user.update(&state.db).await?; |
| 305 | Ok(SuccessResponse::ok(Account { | 309 | Ok(SuccessResponse::ok(user.into())) |
| 306 | id: user.id, | ||
| 307 | username: user.username, | ||
| 308 | first_name: user.first_name, | ||
| 309 | last_name: user.last_name, | ||
| 310 | })) | ||
| 311 | } | 310 | } |
| 312 | 311 | ||
| 313 | #[utoipa::path( | 312 | #[utoipa::path( |
| @@ -315,6 +314,7 @@ async fn change_name( | |||
| 315 | path = "/delete", | 314 | path = "/delete", |
| 316 | tag = ACCOUNT, | 315 | tag = ACCOUNT, |
| 317 | summary = "Delete", | 316 | summary = "Delete", |
| 317 | description = "Delete your account", | ||
| 318 | request_body = DeleteUserRequest, | 318 | request_body = DeleteUserRequest, |
| 319 | responses( | 319 | responses( |
| 320 | ( | 320 | ( |
