mirror of
https://github.com/n08i40k/schedule-parser-rusted.git
synced 2025-12-06 09:47:50 +03:00
refactor(auth): interpret failure to find user as an error
This commit is contained in:
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user