Remove unnecessary local bindings when global binding did

This commit is contained in:
Dat PHAM HOANG
2023-03-03 12:15:26 +07:00
committed by Dat Vu
parent f1ccbe26e5
commit d252479d19
17 changed files with 90 additions and 148 deletions
@@ -1,14 +1,12 @@
import 'package:core/data/network/config/dynamic_url_interceptors.dart';
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/utils/app_toast.dart';
import 'package:core/utils/app_logger.dart';
import 'package:get/get.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
import 'package:tmail_ui_user/features/base/reloadable/reloadable_controller.dart';
import 'package:tmail_ui_user/features/caching/caching_manager.dart';
import 'package:tmail_ui_user/features/login/data/network/config/authorization_interceptors.dart';
import 'package:tmail_ui_user/features/login/domain/exceptions/authentication_exception.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/delete_authority_oidc_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/delete_credential_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/get_authenticated_account_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/update_authentication_account_interactor.dart';
import 'package:tmail_ui_user/features/manage_account/domain/usecases/log_out_oidc_interactor.dart';
@@ -23,10 +21,6 @@ import 'package:tmail_ui_user/main/routes/route_utils.dart';
class SessionController extends ReloadableController {
final GetSessionInteractor _getSessionInteractor;
final DeleteCredentialInteractor _deleteCredentialInteractor;
final CachingManager _cachingManager;
final DeleteAuthorityOidcInteractor _deleteAuthorityOidcInteractor;
final AuthorizationInterceptors _authorizationInterceptors;
final AppToast _appToast;
final DynamicUrlInterceptors _dynamicUrlInterceptors;
@@ -36,15 +30,9 @@ class SessionController extends ReloadableController {
GetAuthenticatedAccountInteractor getAuthenticatedAccountInteractor,
UpdateAuthenticationAccountInteractor updateAuthenticationAccountInteractor,
this._getSessionInteractor,
this._deleteCredentialInteractor,
this._cachingManager,
this._deleteAuthorityOidcInteractor,
this._authorizationInterceptors,
this._appToast,
this._dynamicUrlInterceptors,
) : super(
logoutOidcInteractor,
deleteAuthorityOidcInteractor,
getAuthenticatedAccountInteractor,
updateAuthenticationAccountInteractor
);
@@ -80,10 +68,13 @@ class SessionController extends ReloadableController {
}
void _handleSessionFailure(Failure failure) {
log('SessionController::_handleSessionFailure(): $failure');
if (failure is GetSessionFailure) {
final sessionException = failure.exception;
if (_checkUrlError(sessionException) && currentContext != null) {
_appToast.showErrorToast(AppLocalizations.of(currentContext!).wrongUrlMessage);
} else if (sessionException is BadCredentialsException && currentContext != null) {
_appToast.showErrorToast(AppLocalizations.of(currentContext!).badCredentials);
} else if (sessionException is UnknownError && currentContext != null) {
if (sessionException.message != null) {
_appToast.showErrorToast('[${sessionException.code}] ${sessionException.message}');
@@ -100,11 +91,11 @@ class SessionController extends ReloadableController {
void _goToLogin() async {
await Future.wait([
_deleteCredentialInteractor.execute(),
_deleteAuthorityOidcInteractor.execute(),
_cachingManager.clearAll()
deleteCredentialInteractor.execute(),
deleteAuthorityOidcInteractor.execute(),
cachingManager.clearAll()
]);
_authorizationInterceptors.clear();
authorizationInterceptors.clear();
pushAndPopAll(AppRoutes.login);
}
@@ -2,24 +2,17 @@ import 'package:core/data/network/config/dynamic_url_interceptors.dart';
import 'package:core/presentation/utils/app_toast.dart';
import 'package:get/get.dart';
import 'package:tmail_ui_user/features/base/base_bindings.dart';
import 'package:tmail_ui_user/features/caching/caching_manager.dart';
import 'package:tmail_ui_user/features/login/data/datasource/account_datasource.dart';
import 'package:tmail_ui_user/features/login/data/datasource/authentication_oidc_datasource.dart';
import 'package:tmail_ui_user/features/login/data/datasource_impl/authentication_oidc_datasource_impl.dart';
import 'package:tmail_ui_user/features/login/data/datasource_impl/hive_account_datasource_impl.dart';
import 'package:tmail_ui_user/features/login/data/local/account_cache_manager.dart';
import 'package:tmail_ui_user/features/login/data/local/oidc_configuration_cache_manager.dart';
import 'package:tmail_ui_user/features/login/data/local/token_oidc_cache_manager.dart';
import 'package:tmail_ui_user/features/login/data/network/authentication_client/authentication_client_base.dart';
import 'package:tmail_ui_user/features/login/data/network/config/authorization_interceptors.dart';
import 'package:tmail_ui_user/features/login/data/network/oidc_http_client.dart';
import 'package:tmail_ui_user/features/login/data/repository/account_repository_impl.dart';
import 'package:tmail_ui_user/features/login/data/repository/authentication_oidc_repository_impl.dart';
import 'package:tmail_ui_user/features/login/domain/repository/account_repository.dart';
import 'package:tmail_ui_user/features/login/domain/repository/authentication_oidc_repository.dart';
import 'package:tmail_ui_user/features/login/domain/repository/credential_repository.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/delete_authority_oidc_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/delete_credential_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/get_authenticated_account_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/get_credential_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/get_stored_token_oidc_interactor.dart';
@@ -27,7 +20,6 @@ import 'package:tmail_ui_user/features/login/domain/usecases/update_authenticati
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 {
@@ -40,10 +32,6 @@ class SessionPageBindings extends BaseBindings {
Get.find<GetAuthenticatedAccountInteractor>(),
Get.find<UpdateAuthenticationAccountInteractor>(),
Get.find<GetSessionInteractor>(),
Get.find<DeleteCredentialInteractor>(),
Get.find<CachingManager>(),
Get.find<DeleteAuthorityOidcInteractor>(),
Get.find<AuthorizationInterceptors>(),
Get.find<AppToast>(),
Get.find<DynamicUrlInterceptors>(),
));
@@ -52,7 +40,6 @@ class SessionPageBindings extends BaseBindings {
@override
void bindingsDataSource() {
Get.lazyPut<AuthenticationOIDCDataSource>(() => Get.find<AuthenticationOIDCDataSourceImpl>());
Get.lazyPut<AccountDatasource>(() => Get.find<HiveAccountDatasourceImpl>());
}
@override
@@ -64,9 +51,6 @@ class SessionPageBindings extends BaseBindings {
Get.find<OidcConfigurationCacheManager>(),
Get.find<RemoteExceptionThrower>(),
));
Get.lazyPut(() => HiveAccountDatasourceImpl(
Get.find<AccountCacheManager>(),
Get.find<CacheExceptionThrower>()));
}
@override
@@ -74,10 +58,6 @@ class SessionPageBindings extends BaseBindings {
Get.lazyPut(() => DeleteAuthorityOidcInteractor(
Get.find<AuthenticationOIDCRepository>(),
Get.find<CredentialRepository>()));
Get.lazyPut(() => LogoutOidcInteractor(
Get.find<AccountRepository>(),
Get.find<AuthenticationOIDCRepository>(),
));
Get.lazyPut(() => GetStoredTokenOidcInteractor(
Get.find<AuthenticationOIDCRepository>(),
Get.find<CredentialRepository>(),
@@ -93,12 +73,10 @@ class SessionPageBindings extends BaseBindings {
@override
void bindingsRepository() {
Get.lazyPut<AuthenticationOIDCRepository>(() => Get.find<AuthenticationOIDCRepositoryImpl>());
Get.lazyPut<AccountRepository>(() => Get.find<AccountRepositoryImpl>());
}
@override
void bindingsRepositoryImpl() {
Get.lazyPut(() => AuthenticationOIDCRepositoryImpl(Get.find<AuthenticationOIDCDataSource>()));
Get.lazyPut(() => AccountRepositoryImpl(Get.find<AccountDatasource>()));
}
}