From ef7db7424a7586bc39310f8cb2571b5acd6b3332 Mon Sep 17 00:00:00 2001 From: SquidSpirit Date: Fri, 1 Aug 2025 13:10:28 +0800 Subject: [PATCH] BLOG-94 fix: improve error handling for user retrieval --- .../use_case/exchange_auth_code_use_case.rs | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/backend/feature/auth/src/application/use_case/exchange_auth_code_use_case.rs b/backend/feature/auth/src/application/use_case/exchange_auth_code_use_case.rs index 90990e6..ae59f7a 100644 --- a/backend/feature/auth/src/application/use_case/exchange_auth_code_use_case.rs +++ b/backend/feature/auth/src/application/use_case/exchange_auth_code_use_case.rs @@ -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) }