From 4aad1c94ed96f770afece53f2b90675b808b0896 Mon Sep 17 00:00:00 2001 From: dab246 Date: Fri, 28 Oct 2022 12:58:41 +0700 Subject: [PATCH] TF-1115 Implement catch exception for HiveAccountDataSource --- .../email/presentation/email_bindings.dart | 4 ++- .../home/presentation/home_bindings.dart | 4 +-- .../hive_account_datasource_impl.dart | 28 +++++++++++++------ .../login/presentation/login_bindings.dart | 5 ++-- .../bindings/mailbox_dashboard_bindings.dart | 4 ++- .../manage_account_dashboard_bindings.dart | 5 +++- .../presentation/session_page_bindings.dart | 5 ++-- 7 files changed, 38 insertions(+), 17 deletions(-) diff --git a/lib/features/email/presentation/email_bindings.dart b/lib/features/email/presentation/email_bindings.dart index f1285743c..25e21d245 100644 --- a/lib/features/email/presentation/email_bindings.dart +++ b/lib/features/email/presentation/email_bindings.dart @@ -88,7 +88,9 @@ class EmailBindings extends BaseBindings { Get.lazyPut(() => EmailDataSourceImpl( Get.find(), Get.find())); - Get.lazyPut(() => HiveAccountDatasourceImpl(Get.find())); + Get.lazyPut(() => HiveAccountDatasourceImpl( + Get.find(), + Get.find())); Get.lazyPut(() => HtmlDataSourceImpl( Get.find(), Get.find(), diff --git a/lib/features/home/presentation/home_bindings.dart b/lib/features/home/presentation/home_bindings.dart index 3139429d4..1b27ced35 100644 --- a/lib/features/home/presentation/home_bindings.dart +++ b/lib/features/home/presentation/home_bindings.dart @@ -79,8 +79,8 @@ class HomeBindings extends BaseBindings { Get.find(), )); Get.lazyPut(() => HiveAccountDatasourceImpl( - Get.find() - )); + Get.find(), + Get.find())); Get.lazyPut(() => AuthenticationOIDCDataSourceImpl( Get.find(), Get.find(), diff --git a/lib/features/login/data/datasource_impl/hive_account_datasource_impl.dart b/lib/features/login/data/datasource_impl/hive_account_datasource_impl.dart index 5416394f7..e18ab99e0 100644 --- a/lib/features/login/data/datasource_impl/hive_account_datasource_impl.dart +++ b/lib/features/login/data/datasource_impl/hive_account_datasource_impl.dart @@ -1,27 +1,39 @@ -import 'package:core/utils/app_logger.dart'; import 'package:model/account/account.dart'; import 'package:tmail_ui_user/features/login/data/datasource/account_datasource.dart'; import 'package:tmail_ui_user/features/login/data/local/account_cache_manager.dart'; +import 'package:tmail_ui_user/main/exceptions/exception_thrower.dart'; class HiveAccountDatasourceImpl extends AccountDatasource { - final AccountCacheManager _accountCacheManager; - HiveAccountDatasourceImpl(this._accountCacheManager); + final AccountCacheManager _accountCacheManager; + final ExceptionThrower _exceptionThrower; + + HiveAccountDatasourceImpl(this._accountCacheManager, this._exceptionThrower); @override Future getCurrentAccount() { - return _accountCacheManager.getSelectedAccount(); + return Future.sync(() async { + return await _accountCacheManager.getSelectedAccount(); + }).catchError((error) { + _exceptionThrower.throwException(error); + }); } @override Future setCurrentAccount(Account newCurrentAccount) { - log('HiveAccountDatasourceImpl::setCurrentAccount(): $newCurrentAccount'); - log('HiveAccountDatasourceImpl::setCurrentAccount(): $_accountCacheManager'); - return _accountCacheManager.setSelectedAccount(newCurrentAccount); + return Future.sync(() async { + return await _accountCacheManager.setSelectedAccount(newCurrentAccount); + }).catchError((error) { + _exceptionThrower.throwException(error); + }); } @override Future deleteCurrentAccount(String accountId) { - return _accountCacheManager.deleteSelectedAccount(accountId); + return Future.sync(() async { + return await _accountCacheManager.deleteSelectedAccount(accountId); + }).catchError((error) { + _exceptionThrower.throwException(error); + }); } } \ No newline at end of file diff --git a/lib/features/login/presentation/login_bindings.dart b/lib/features/login/presentation/login_bindings.dart index d4caded52..18598c5ce 100644 --- a/lib/features/login/presentation/login_bindings.dart +++ b/lib/features/login/presentation/login_bindings.dart @@ -49,6 +49,7 @@ import 'package:tmail_ui_user/features/login/domain/usecases/save_login_username import 'package:tmail_ui_user/features/login/presentation/login_controller.dart'; import 'package:tmail_ui_user/features/manage_account/domain/usecases/log_out_oidc_interactor.dart'; import 'package:tmail_ui_user/main/bindings/network/binding_tag.dart'; +import 'package:tmail_ui_user/main/exceptions/cache_exception_thrower.dart'; import 'package:tmail_ui_user/main/exceptions/remote_exception_thrower.dart'; class LoginBindings extends BaseBindings { @@ -98,8 +99,8 @@ class LoginBindings extends BaseBindings { Get.find() )); Get.lazyPut(() => HiveAccountDatasourceImpl( - Get.find() - )); + Get.find(), + Get.find())); Get.lazyPut(() => LoginUrlDataSourceImpl( Get.find() )); diff --git a/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart b/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart index 1220056b9..c3ec2e288 100644 --- a/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart +++ b/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart @@ -168,7 +168,9 @@ class MailboxDashBoardBindings extends BaseBindings { Get.lazyPut(() => MailboxCacheDataSourceImpl( Get.find(), Get.find())); - Get.lazyPut(() => HiveAccountDatasourceImpl(Get.find())); + Get.lazyPut(() => HiveAccountDatasourceImpl( + Get.find(), + Get.find())); Get.lazyPut(() => AuthenticationOIDCDataSourceImpl( Get.find(), Get.find(), diff --git a/lib/features/manage_account/presentation/manage_account_dashboard_bindings.dart b/lib/features/manage_account/presentation/manage_account_dashboard_bindings.dart index c7794c769..36c82e03d 100644 --- a/lib/features/manage_account/presentation/manage_account_dashboard_bindings.dart +++ b/lib/features/manage_account/presentation/manage_account_dashboard_bindings.dart @@ -30,6 +30,7 @@ import 'package:tmail_ui_user/features/manage_account/presentation/manage_accoun import 'package:tmail_ui_user/features/manage_account/presentation/menu/manage_account_menu_bindings.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/menu/settings/settings_bindings.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/profiles/profiles_bindings.dart'; +import 'package:tmail_ui_user/main/exceptions/cache_exception_thrower.dart'; import 'package:tmail_ui_user/main/exceptions/remote_exception_thrower.dart'; class ManageAccountDashBoardBindings extends BaseBindings { @@ -61,7 +62,9 @@ class ManageAccountDashBoardBindings extends BaseBindings { @override void bindingsDataSourceImpl() { - Get.lazyPut(() => HiveAccountDatasourceImpl(Get.find())); + Get.lazyPut(() => HiveAccountDatasourceImpl( + Get.find(), + Get.find())); Get.lazyPut(() => AuthenticationOIDCDataSourceImpl( Get.find(), Get.find(), diff --git a/lib/features/session/presentation/session_page_bindings.dart b/lib/features/session/presentation/session_page_bindings.dart index 5d0a9661a..7b58cbea5 100644 --- a/lib/features/session/presentation/session_page_bindings.dart +++ b/lib/features/session/presentation/session_page_bindings.dart @@ -26,6 +26,7 @@ import 'package:tmail_ui_user/features/login/domain/usecases/get_stored_token_oi import 'package:tmail_ui_user/features/manage_account/domain/usecases/log_out_oidc_interactor.dart'; import 'package:tmail_ui_user/features/session/domain/usecases/get_session_interactor.dart'; import 'package:tmail_ui_user/features/session/presentation/session_controller.dart'; +import 'package:tmail_ui_user/main/exceptions/cache_exception_thrower.dart'; import 'package:tmail_ui_user/main/exceptions/remote_exception_thrower.dart'; class SessionPageBindings extends BaseBindings { @@ -62,8 +63,8 @@ class SessionPageBindings extends BaseBindings { Get.find(), )); Get.lazyPut(() => HiveAccountDatasourceImpl( - Get.find() - )); + Get.find(), + Get.find())); } @override