BLOG-94 fix: improve error handling for user retrieval
This commit is contained in:
parent
d349fd672c
commit
ef7db7424a
@ -46,18 +46,26 @@ impl ExchangeAuthCodeUseCase for ExchangeAuthCodeUseCaseImpl {
|
||||
.exchange_auth_code(code, expected_nonce)
|
||||
.await?;
|
||||
|
||||
let saved_user = self
|
||||
let saved_user_result = self
|
||||
.auth_repository
|
||||
.get_user_by_source_id(&logged_in_user.issuer, &logged_in_user.source_id)
|
||||
.await;
|
||||
|
||||
if saved_user.err() == Some(AuthError::UserNotFound) {
|
||||
let id = self
|
||||
.auth_repository
|
||||
.save_user(logged_in_user.clone())
|
||||
.await?;
|
||||
logged_in_user.id = id;
|
||||
}
|
||||
match saved_user_result {
|
||||
Ok(user) => {
|
||||
logged_in_user.id = user.id;
|
||||
}
|
||||
Err(AuthError::UserNotFound) => {
|
||||
let id = self
|
||||
.auth_repository
|
||||
.save_user(logged_in_user.clone())
|
||||
.await?;
|
||||
logged_in_user.id = id;
|
||||
}
|
||||
Err(e) => {
|
||||
return Err(e);
|
||||
}
|
||||
};
|
||||
|
||||
Ok(logged_in_user)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user