2 Commits

3 changed files with 23 additions and 19 deletions

2
Cargo.lock generated
View File

@@ -3538,7 +3538,7 @@ dependencies = [
[[package]] [[package]]
name = "schedule-parser-rusted" name = "schedule-parser-rusted"
version = "1.2.1" version = "1.2.2"
dependencies = [ dependencies = [
"actix-macros 0.1.0", "actix-macros 0.1.0",
"actix-test", "actix-test",

View File

@@ -3,7 +3,7 @@ members = ["actix-macros", "actix-test", "providers"]
[package] [package]
name = "schedule-parser-rusted" name = "schedule-parser-rusted"
version = "1.2.1" version = "1.2.2"
edition = "2024" edition = "2024"
publish = false publish = false

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()