refactor(auth): interpret failure to find user as an error

This commit is contained in:
2025-09-08 07:15:22 +04:00
parent ff12ee5da2
commit a348b1b99b

View File

@@ -49,10 +49,12 @@ pub async fn telegram_auth(
let web_app_user = let web_app_user =
serde_json::from_str::<WebAppUser>(init_data.data_map.get("user").unwrap()).unwrap(); serde_json::from_str::<WebAppUser>(init_data.data_map.get("user").unwrap()).unwrap();
let user = let user = match Query::find_user_by_telegram_id(app_state.get_database(), web_app_user.id)
match Query::find_user_by_telegram_id(app_state.get_database(), web_app_user.id).await { .await
Ok(Some(value)) => Ok(value), .expect("Failed to find user by telegram id")
_ => { {
Some(value) => value,
None => {
let new_user = ActiveUser { let new_user = ActiveUser {
id: Set(ObjectId::new().unwrap().to_string()), id: Set(ObjectId::new().unwrap().to_string()),
username: Set(format!("telegram_{}", web_app_user.id)), // можно оставить, а можно поменять username: Set(format!("telegram_{}", web_app_user.id)), // можно оставить, а можно поменять
@@ -64,10 +66,12 @@ pub async fn telegram_auth(
android_version: Set(None), android_version: Set(None),
}; };
new_user.insert(app_state.get_database()).await new_user
.insert(app_state.get_database())
.await
.expect("Failed to insert user")
} }
} };
.expect("Failed to get or add user");
let access_token = utility::jwt::encode(&user.id); let access_token = utility::jwt::encode(&user.id);
Ok(Response::new(&access_token, user.group.is_some())).into() Ok(Response::new(&access_token, user.group.is_some())).into()