diff --git a/lib/features/session/presentation/session_controller.dart b/lib/features/session/presentation/session_controller.dart index 1f4e0d0db..c20085f54 100644 --- a/lib/features/session/presentation/session_controller.dart +++ b/lib/features/session/presentation/session_controller.dart @@ -1,5 +1,7 @@ import 'package:get/get.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/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/session/domain/state/get_session_state.dart'; import 'package:tmail_ui_user/features/session/domain/usecases/get_session_interactor.dart'; @@ -10,11 +12,15 @@ class SessionController extends GetxController { final GetSessionInteractor _getSessionInteractor; final DeleteCredentialInteractor _deleteCredentialInteractor; final CachingManager _cachingManager; + final DeleteAuthorityOidcInteractor _deleteAuthorityOidcInteractor; + final AuthorizationInterceptors _authorizationInterceptors; SessionController( this._getSessionInteractor, this._deleteCredentialInteractor, this._cachingManager, + this._deleteAuthorityOidcInteractor, + this._authorizationInterceptors, ); @override @@ -30,17 +36,13 @@ class SessionController extends GetxController { (success) => success is GetSessionSuccess ? _goToMailboxDashBoard(success) : _goToLogin())); } - void _deleteCredential() async { - await _deleteCredentialInteractor.execute(); - } - - void _clearAllCache() async { - await _cachingManager.clearAll(); - } - - void _goToLogin() { - _deleteCredential(); - _clearAllCache(); + void _goToLogin() async { + await Future.wait([ + _deleteCredentialInteractor.execute(), + _deleteAuthorityOidcInteractor.execute(), + _cachingManager.clearAll() + ]); + _authorizationInterceptors.clear(); pushAndPopAll(AppRoutes.LOGIN); } diff --git a/lib/features/session/presentation/session_page_bindings.dart b/lib/features/session/presentation/session_page_bindings.dart index 3e31dd9c7..b2b3083ed 100644 --- a/lib/features/session/presentation/session_page_bindings.dart +++ b/lib/features/session/presentation/session_page_bindings.dart @@ -1,6 +1,16 @@ 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/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/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/authentication_oidc_repository_impl.dart'; +import 'package:tmail_ui_user/features/login/domain/repository/authentication_oidc_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/session/domain/usecases/get_session_interactor.dart'; import 'package:tmail_ui_user/features/session/presentation/session_controller.dart'; @@ -13,27 +23,38 @@ class SessionPageBindings extends BaseBindings { Get.find(), Get.find(), Get.find(), + Get.find(), + Get.find(), )); } @override void bindingsDataSource() { - + Get.lazyPut(() => Get.find()); } @override void bindingsDataSourceImpl() { + Get.lazyPut(() => AuthenticationOIDCDataSourceImpl( + Get.find(), + Get.find(), + Get.find(), + Get.find() + )); } @override void bindingsInteractor() { + Get.lazyPut(() => DeleteAuthorityOidcInteractor(Get.find())); } @override void bindingsRepository() { + Get.lazyPut(() => Get.find()); } @override void bindingsRepositoryImpl() { + Get.lazyPut(() => AuthenticationOIDCRepositoryImpl(Get.find())); } } \ No newline at end of file