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
@@ -16,22 +16,15 @@ import 'package:tmail_ui_user/features/email/domain/usecases/export_attachment_i
import 'package:tmail_ui_user/features/email/domain/usecases/get_email_content_interactor.dart'; import 'package:tmail_ui_user/features/email/domain/usecases/get_email_content_interactor.dart';
import 'package:tmail_ui_user/features/email/domain/usecases/get_stored_email_state_interactor.dart'; import 'package:tmail_ui_user/features/email/domain/usecases/get_stored_email_state_interactor.dart';
import 'package:tmail_ui_user/features/email/domain/usecases/mark_as_email_read_interactor.dart'; import 'package:tmail_ui_user/features/email/domain/usecases/mark_as_email_read_interactor.dart';
import 'package:tmail_ui_user/features/email/domain/usecases/move_to_mailbox_interactor.dart';
import 'package:tmail_ui_user/features/email/domain/usecases/mark_as_star_email_interactor.dart'; import 'package:tmail_ui_user/features/email/domain/usecases/mark_as_star_email_interactor.dart';
import 'package:tmail_ui_user/features/email/presentation/controller/single_email_controller.dart'; import 'package:tmail_ui_user/features/email/domain/usecases/move_to_mailbox_interactor.dart';
import 'package:tmail_ui_user/features/email/presentation/controller/email_supervisor_controller.dart'; import 'package:tmail_ui_user/features/email/presentation/controller/email_supervisor_controller.dart';
import 'package:tmail_ui_user/features/email/presentation/controller/single_email_controller.dart';
import 'package:tmail_ui_user/features/login/data/datasource/account_datasource.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/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/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/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/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/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/authentication_oidc_repository.dart';
import 'package:tmail_ui_user/features/login/domain/repository/credential_repository.dart'; import 'package:tmail_ui_user/features/login/domain/repository/credential_repository.dart';
@@ -75,7 +68,6 @@ class EmailBindings extends BaseBindings {
Get.lazyPut<HtmlDataSource>(() => Get.find<HtmlDataSourceImpl>()); Get.lazyPut<HtmlDataSource>(() => Get.find<HtmlDataSourceImpl>());
Get.lazyPut<StateDataSource>(() => Get.find<StateDataSourceImpl>()); Get.lazyPut<StateDataSource>(() => Get.find<StateDataSourceImpl>());
Get.lazyPut<AccountDatasource>(() => Get.find<HiveAccountDatasourceImpl>()); Get.lazyPut<AccountDatasource>(() => Get.find<HiveAccountDatasourceImpl>());
Get.lazyPut<AuthenticationOIDCDataSource>(() => Get.find<AuthenticationOIDCDataSourceImpl>());
} }
@override @override
@@ -98,13 +90,6 @@ class EmailBindings extends BaseBindings {
Get.find<DioClient>(), Get.find<DioClient>(),
Get.find<RemoteExceptionThrower>())); Get.find<RemoteExceptionThrower>()));
Get.lazyPut(() => StateDataSourceImpl(Get.find<StateCacheClient>(), Get.find<CacheExceptionThrower>())); Get.lazyPut(() => StateDataSourceImpl(Get.find<StateCacheClient>(), Get.find<CacheExceptionThrower>()));
Get.lazyPut(() => AuthenticationOIDCDataSourceImpl(
Get.find<OIDCHttpClient>(),
Get.find<AuthenticationClientBase>(),
Get.find<TokenOidcCacheManager>(),
Get.find<OidcConfigurationCacheManager>(),
Get.find<RemoteExceptionThrower>(),
));
} }
@override @override
@@ -144,7 +129,6 @@ class EmailBindings extends BaseBindings {
Get.lazyPut<MailboxRepository>(() => Get.find<MailboxRepositoryImpl>()); Get.lazyPut<MailboxRepository>(() => Get.find<MailboxRepositoryImpl>());
Get.lazyPut<EmailRepository>(() => Get.find<EmailRepositoryImpl>()); Get.lazyPut<EmailRepository>(() => Get.find<EmailRepositoryImpl>());
Get.lazyPut<AccountRepository>(() => Get.find<AccountRepositoryImpl>()); Get.lazyPut<AccountRepository>(() => Get.find<AccountRepositoryImpl>());
Get.lazyPut<AuthenticationOIDCRepository>(() => Get.find<AuthenticationOIDCRepositoryImpl>());
} }
@override @override
@@ -162,6 +146,5 @@ class EmailBindings extends BaseBindings {
Get.find<StateDataSource>() Get.find<StateDataSource>()
)); ));
Get.lazyPut(() => AccountRepositoryImpl(Get.find<AccountDatasource>())); Get.lazyPut(() => AccountRepositoryImpl(Get.find<AccountDatasource>()));
Get.lazyPut(() => AuthenticationOIDCRepositoryImpl(Get.find<AuthenticationOIDCDataSource>()));
} }
} }
@@ -1,7 +1,6 @@
import 'package:core/core.dart'; import 'package:core/core.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:tmail_ui_user/features/base/base_bindings.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/cleanup/data/datasource/cleanup_datasource.dart'; import 'package:tmail_ui_user/features/cleanup/data/datasource/cleanup_datasource.dart';
import 'package:tmail_ui_user/features/cleanup/data/datasource_impl/cleanup_datasource_impl.dart'; import 'package:tmail_ui_user/features/cleanup/data/datasource_impl/cleanup_datasource_impl.dart';
import 'package:tmail_ui_user/features/cleanup/data/local/recent_login_url_cache_manager.dart'; import 'package:tmail_ui_user/features/cleanup/data/local/recent_login_url_cache_manager.dart';
@@ -22,7 +21,6 @@ import 'package:tmail_ui_user/features/login/data/local/account_cache_manager.da
import 'package:tmail_ui_user/features/login/data/local/oidc_configuration_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/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/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/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/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/data/repository/authentication_oidc_repository_impl.dart';
@@ -30,13 +28,10 @@ import 'package:tmail_ui_user/features/login/domain/repository/account_repositor
import 'package:tmail_ui_user/features/login/domain/repository/authentication_oidc_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/repository/credential_repository.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/check_oidc_is_available_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/check_oidc_is_available_interactor.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_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_credential_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/get_stored_token_oidc_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/get_stored_token_oidc_interactor.dart';
import 'package:tmail_ui_user/features/thread/data/local/email_cache_manager.dart'; import 'package:tmail_ui_user/features/thread/data/local/email_cache_manager.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/cache_exception_thrower.dart';
import 'package:tmail_ui_user/main/exceptions/remote_exception_thrower.dart'; import 'package:tmail_ui_user/main/exceptions/remote_exception_thrower.dart';
import 'package:tmail_ui_user/main/utils/email_receive_manager.dart'; import 'package:tmail_ui_user/main/utils/email_receive_manager.dart';
@@ -48,16 +43,11 @@ class HomeBindings extends BaseBindings {
Get.lazyPut(() => HomeController( Get.lazyPut(() => HomeController(
Get.find<GetAuthenticatedAccountInteractor>(), Get.find<GetAuthenticatedAccountInteractor>(),
Get.find<DynamicUrlInterceptors>(), Get.find<DynamicUrlInterceptors>(),
Get.find<AuthorizationInterceptors>(),
Get.find<AuthorizationInterceptors>(tag: BindingTag.isolateTag),
Get.find<CleanupEmailCacheInteractor>(), Get.find<CleanupEmailCacheInteractor>(),
Get.find<EmailReceiveManager>(), Get.find<EmailReceiveManager>(),
Get.find<CleanupRecentSearchCacheInteractor>(), Get.find<CleanupRecentSearchCacheInteractor>(),
Get.find<CleanupRecentLoginUrlCacheInteractor>(), Get.find<CleanupRecentLoginUrlCacheInteractor>(),
Get.find<CleanupRecentLoginUsernameCacheInteractor>(), Get.find<CleanupRecentLoginUsernameCacheInteractor>(),
Get.find<DeleteCredentialInteractor>(),
Get.find<CachingManager>(),
Get.find<DeleteAuthorityOidcInteractor>(),
Get.find<CheckOIDCIsAvailableInteractor>(), Get.find<CheckOIDCIsAvailableInteractor>(),
)); ));
} }
@@ -105,9 +95,6 @@ class HomeBindings extends BaseBindings {
Get.lazyPut(() => CleanupRecentSearchCacheInteractor(Get.find<CleanupRepository>())); Get.lazyPut(() => CleanupRecentSearchCacheInteractor(Get.find<CleanupRepository>()));
Get.lazyPut(() => CleanupRecentLoginUrlCacheInteractor(Get.find<CleanupRepository>())); Get.lazyPut(() => CleanupRecentLoginUrlCacheInteractor(Get.find<CleanupRepository>()));
Get.lazyPut(() => CleanupRecentLoginUsernameCacheInteractor(Get.find<CleanupRepository>())); Get.lazyPut(() => CleanupRecentLoginUsernameCacheInteractor(Get.find<CleanupRepository>()));
Get.lazyPut(() => DeleteAuthorityOidcInteractor(
Get.find<AuthenticationOIDCRepository>(),
Get.find<CredentialRepository>()));
Get.lazyPut(() => CheckOIDCIsAvailableInteractor(Get.find<AuthenticationOIDCRepository>())); Get.lazyPut(() => CheckOIDCIsAvailableInteractor(Get.find<AuthenticationOIDCRepository>()));
} }
@@ -7,7 +7,6 @@ import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
import 'package:model/model.dart'; import 'package:model/model.dart';
import 'package:receive_sharing_intent/receive_sharing_intent.dart'; import 'package:receive_sharing_intent/receive_sharing_intent.dart';
import 'package:tmail_ui_user/features/base/base_controller.dart'; import 'package:tmail_ui_user/features/base/base_controller.dart';
import 'package:tmail_ui_user/features/caching/caching_manager.dart';
import 'package:tmail_ui_user/features/caching/config/hive_cache_config.dart'; import 'package:tmail_ui_user/features/caching/config/hive_cache_config.dart';
import 'package:tmail_ui_user/features/cleanup/domain/model/cleanup_rule.dart'; import 'package:tmail_ui_user/features/cleanup/domain/model/cleanup_rule.dart';
import 'package:tmail_ui_user/features/cleanup/domain/model/email_cleanup_rule.dart'; import 'package:tmail_ui_user/features/cleanup/domain/model/email_cleanup_rule.dart';
@@ -18,13 +17,10 @@ import 'package:tmail_ui_user/features/cleanup/domain/usecases/cleanup_email_cac
import 'package:tmail_ui_user/features/cleanup/domain/usecases/cleanup_recent_login_url_cache_interactor.dart'; import 'package:tmail_ui_user/features/cleanup/domain/usecases/cleanup_recent_login_url_cache_interactor.dart';
import 'package:tmail_ui_user/features/cleanup/domain/usecases/cleanup_recent_login_username_interactor.dart'; import 'package:tmail_ui_user/features/cleanup/domain/usecases/cleanup_recent_login_username_interactor.dart';
import 'package:tmail_ui_user/features/cleanup/domain/usecases/cleanup_recent_search_cache_interactor.dart'; import 'package:tmail_ui_user/features/cleanup/domain/usecases/cleanup_recent_search_cache_interactor.dart';
import 'package:tmail_ui_user/features/login/data/network/config/authorization_interceptors.dart';
import 'package:tmail_ui_user/features/login/domain/state/check_oidc_is_available_state.dart'; import 'package:tmail_ui_user/features/login/domain/state/check_oidc_is_available_state.dart';
import 'package:tmail_ui_user/features/login/domain/state/get_credential_state.dart'; import 'package:tmail_ui_user/features/login/domain/state/get_credential_state.dart';
import 'package:tmail_ui_user/features/login/domain/state/get_stored_token_oidc_state.dart'; import 'package:tmail_ui_user/features/login/domain/state/get_stored_token_oidc_state.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/check_oidc_is_available_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/check_oidc_is_available_interactor.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_authenticated_account_interactor.dart';
import 'package:tmail_ui_user/features/login/presentation/login_form_type.dart'; import 'package:tmail_ui_user/features/login/presentation/login_form_type.dart';
import 'package:tmail_ui_user/features/login/presentation/model/login_arguments.dart'; import 'package:tmail_ui_user/features/login/presentation/model/login_arguments.dart';
@@ -36,31 +32,21 @@ import 'package:tmail_ui_user/main/utils/email_receive_manager.dart';
class HomeController extends BaseController { class HomeController extends BaseController {
final GetAuthenticatedAccountInteractor _getAuthenticatedAccountInteractor; final GetAuthenticatedAccountInteractor _getAuthenticatedAccountInteractor;
final DynamicUrlInterceptors _dynamicUrlInterceptors; final DynamicUrlInterceptors _dynamicUrlInterceptors;
final AuthorizationInterceptors _authorizationInterceptors;
final AuthorizationInterceptors _authorizationIsolateInterceptors;
final CleanupEmailCacheInteractor _cleanupEmailCacheInteractor; final CleanupEmailCacheInteractor _cleanupEmailCacheInteractor;
final EmailReceiveManager _emailReceiveManager; final EmailReceiveManager _emailReceiveManager;
final CleanupRecentSearchCacheInteractor _cleanupRecentSearchCacheInteractor; final CleanupRecentSearchCacheInteractor _cleanupRecentSearchCacheInteractor;
final CleanupRecentLoginUrlCacheInteractor _cleanupRecentLoginUrlCacheInteractor; final CleanupRecentLoginUrlCacheInteractor _cleanupRecentLoginUrlCacheInteractor;
final CleanupRecentLoginUsernameCacheInteractor _cleanupRecentLoginUsernameCacheInteractor; final CleanupRecentLoginUsernameCacheInteractor _cleanupRecentLoginUsernameCacheInteractor;
final DeleteCredentialInteractor _deleteCredentialInteractor;
final CachingManager _cachingManager;
final DeleteAuthorityOidcInteractor _deleteAuthorityOidcInteractor;
final CheckOIDCIsAvailableInteractor _checkOIDCIsAvailableInteractor; final CheckOIDCIsAvailableInteractor _checkOIDCIsAvailableInteractor;
HomeController( HomeController(
this._getAuthenticatedAccountInteractor, this._getAuthenticatedAccountInteractor,
this._dynamicUrlInterceptors, this._dynamicUrlInterceptors,
this._authorizationInterceptors,
this._authorizationIsolateInterceptors,
this._cleanupEmailCacheInteractor, this._cleanupEmailCacheInteractor,
this._emailReceiveManager, this._emailReceiveManager,
this._cleanupRecentSearchCacheInteractor, this._cleanupRecentSearchCacheInteractor,
this._cleanupRecentLoginUrlCacheInteractor, this._cleanupRecentLoginUrlCacheInteractor,
this._cleanupRecentLoginUsernameCacheInteractor, this._cleanupRecentLoginUsernameCacheInteractor,
this._deleteCredentialInteractor,
this._cachingManager,
this._deleteAuthorityOidcInteractor,
this._checkOIDCIsAvailableInteractor, this._checkOIDCIsAvailableInteractor,
); );
@@ -91,7 +77,7 @@ class HomeController extends BaseController {
static void downloadCallback(String id, DownloadTaskStatus status, int progress) {} static void downloadCallback(String id, DownloadTaskStatus status, int progress) {}
void _cleanupCache() async { void _cleanupCache() async {
await HiveCacheConfig().onUpgradeDatabase(_cachingManager); await HiveCacheConfig().onUpgradeDatabase(cachingManager);
await Future.wait([ await Future.wait([
_cleanupEmailCacheInteractor.execute(EmailCleanupRule(Duration.defaultCacheInternal)), _cleanupEmailCacheInteractor.execute(EmailCleanupRule(Duration.defaultCacheInternal)),
@@ -169,9 +155,9 @@ class HomeController extends BaseController {
void _clearAllCacheAndCredential() async { void _clearAllCacheAndCredential() async {
await Future.wait([ await Future.wait([
_deleteCredentialInteractor.execute(), deleteCredentialInteractor.execute(),
_deleteAuthorityOidcInteractor.execute(), deleteAuthorityOidcInteractor.execute(),
_cachingManager.clearAll() cachingManager.clearAll()
]).then((value) { ]).then((value) {
if (BuildUtils.isWeb) { if (BuildUtils.isWeb) {
_checkOIDCIsAvailable(); _checkOIDCIsAvailable();
@@ -198,10 +184,10 @@ class HomeController extends BaseController {
void _goToSessionWithTokenOidc(GetStoredTokenOidcSuccess storedTokenOidcSuccess) { void _goToSessionWithTokenOidc(GetStoredTokenOidcSuccess storedTokenOidcSuccess) {
_dynamicUrlInterceptors.changeBaseUrl(storedTokenOidcSuccess.baseUrl.toString()); _dynamicUrlInterceptors.changeBaseUrl(storedTokenOidcSuccess.baseUrl.toString());
_authorizationInterceptors.setTokenAndAuthorityOidc( authorizationInterceptors.setTokenAndAuthorityOidc(
newToken: storedTokenOidcSuccess.tokenOidc.toToken(), newToken: storedTokenOidcSuccess.tokenOidc.toToken(),
newConfig: storedTokenOidcSuccess.oidcConfiguration); newConfig: storedTokenOidcSuccess.oidcConfiguration);
_authorizationIsolateInterceptors.setTokenAndAuthorityOidc( authorizationIsolateInterceptors.setTokenAndAuthorityOidc(
newToken: storedTokenOidcSuccess.tokenOidc.toToken(), newToken: storedTokenOidcSuccess.tokenOidc.toToken(),
newConfig: storedTokenOidcSuccess.oidcConfiguration); newConfig: storedTokenOidcSuccess.oidcConfiguration);
pushAndPop(AppRoutes.session, arguments: _dynamicUrlInterceptors.baseUrl); pushAndPop(AppRoutes.session, arguments: _dynamicUrlInterceptors.baseUrl);
@@ -209,11 +195,11 @@ class HomeController extends BaseController {
void _goToSessionWithBasicAuth(GetCredentialViewState credentialViewState) { void _goToSessionWithBasicAuth(GetCredentialViewState credentialViewState) {
_dynamicUrlInterceptors.changeBaseUrl(credentialViewState.baseUrl.origin); _dynamicUrlInterceptors.changeBaseUrl(credentialViewState.baseUrl.origin);
_authorizationInterceptors.setBasicAuthorization( authorizationInterceptors.setBasicAuthorization(
credentialViewState.userName.userName, credentialViewState.userName.userName,
credentialViewState.password.value, credentialViewState.password.value,
); );
_authorizationIsolateInterceptors.setBasicAuthorization( authorizationIsolateInterceptors.setBasicAuthorization(
credentialViewState.userName.userName, credentialViewState.userName.userName,
credentialViewState.password.value, credentialViewState.password.value,
); );
@@ -64,8 +64,6 @@ class LoginBindings extends BaseBindings {
Get.find<UpdateAuthenticationAccountInteractor>(), Get.find<UpdateAuthenticationAccountInteractor>(),
Get.find<AuthenticationInteractor>(), Get.find<AuthenticationInteractor>(),
Get.find<DynamicUrlInterceptors>(), Get.find<DynamicUrlInterceptors>(),
Get.find<AuthorizationInterceptors>(),
Get.find<AuthorizationInterceptors>(tag: BindingTag.isolateTag),
Get.find<CheckOIDCIsAvailableInteractor>(), Get.find<CheckOIDCIsAvailableInteractor>(),
Get.find<GetOIDCIsAvailableInteractor>(), Get.find<GetOIDCIsAvailableInteractor>(),
Get.find<GetOIDCConfigurationInteractor>(), Get.find<GetOIDCConfigurationInteractor>(),
@@ -113,10 +111,6 @@ class LoginBindings extends BaseBindings {
@override @override
void bindingsInteractor() { void bindingsInteractor() {
Get.lazyPut(() => LogoutOidcInteractor(
Get.find<AccountRepository>(),
Get.find<AuthenticationOIDCRepository>(),
));
Get.lazyPut(() => DeleteAuthorityOidcInteractor( Get.lazyPut(() => DeleteAuthorityOidcInteractor(
Get.find<AuthenticationOIDCRepository>(), Get.find<AuthenticationOIDCRepository>(),
Get.find<CredentialRepository>()) Get.find<CredentialRepository>())
@@ -16,7 +16,6 @@ import 'package:model/oidc/request/oidc_request.dart';
import 'package:model/oidc/response/oidc_response.dart'; import 'package:model/oidc/response/oidc_response.dart';
import 'package:model/oidc/token_oidc.dart'; import 'package:model/oidc/token_oidc.dart';
import 'package:tmail_ui_user/features/base/reloadable/reloadable_controller.dart'; import 'package:tmail_ui_user/features/base/reloadable/reloadable_controller.dart';
import 'package:tmail_ui_user/features/login/data/network/config/authorization_interceptors.dart';
import 'package:tmail_ui_user/features/login/domain/model/recent_login_url.dart'; import 'package:tmail_ui_user/features/login/domain/model/recent_login_url.dart';
import 'package:tmail_ui_user/features/login/domain/model/recent_login_username.dart'; import 'package:tmail_ui_user/features/login/domain/model/recent_login_username.dart';
import 'package:tmail_ui_user/features/login/domain/state/authenticate_oidc_on_browser_state.dart'; import 'package:tmail_ui_user/features/login/domain/state/authenticate_oidc_on_browser_state.dart';
@@ -59,8 +58,6 @@ class LoginController extends ReloadableController {
final AuthenticationInteractor _authenticationInteractor; final AuthenticationInteractor _authenticationInteractor;
final DynamicUrlInterceptors _dynamicUrlInterceptors; final DynamicUrlInterceptors _dynamicUrlInterceptors;
final AuthorizationInterceptors _authorizationInterceptors;
final AuthorizationInterceptors _authorizationIsolateInterceptors;
final CheckOIDCIsAvailableInteractor _checkOIDCIsAvailableInteractor; final CheckOIDCIsAvailableInteractor _checkOIDCIsAvailableInteractor;
final GetOIDCIsAvailableInteractor _getOIDCIsAvailableInteractor; final GetOIDCIsAvailableInteractor _getOIDCIsAvailableInteractor;
final GetOIDCConfigurationInteractor _getOIDCConfigurationInteractor; final GetOIDCConfigurationInteractor _getOIDCConfigurationInteractor;
@@ -85,8 +82,6 @@ class LoginController extends ReloadableController {
UpdateAuthenticationAccountInteractor updateAuthenticationAccountInteractor, UpdateAuthenticationAccountInteractor updateAuthenticationAccountInteractor,
this._authenticationInteractor, this._authenticationInteractor,
this._dynamicUrlInterceptors, this._dynamicUrlInterceptors,
this._authorizationInterceptors,
this._authorizationIsolateInterceptors,
this._checkOIDCIsAvailableInteractor, this._checkOIDCIsAvailableInteractor,
this._getOIDCIsAvailableInteractor, this._getOIDCIsAvailableInteractor,
this._getOIDCConfigurationInteractor, this._getOIDCConfigurationInteractor,
@@ -99,8 +94,6 @@ class LoginController extends ReloadableController {
this._saveLoginUsernameOnMobileInteractor, this._saveLoginUsernameOnMobileInteractor,
this._getAllRecentLoginUsernameOnMobileInteractor, this._getAllRecentLoginUsernameOnMobileInteractor,
) : super( ) : super(
logoutOidcInteractor,
deleteAuthorityOidcInteractor,
getAuthenticatedAccountInteractor, getAuthenticatedAccountInteractor,
updateAuthenticationAccountInteractor updateAuthenticationAccountInteractor
); );
@@ -314,10 +307,10 @@ class LoginController extends ReloadableController {
log('LoginController::_getTokenOIDCSuccess(): ${success.tokenOIDC.toString()}'); log('LoginController::_getTokenOIDCSuccess(): ${success.tokenOIDC.toString()}');
loginState.value = LoginState(Right(success)); loginState.value = LoginState(Right(success));
_dynamicUrlInterceptors.changeBaseUrl(kIsWeb ? AppConfig.baseUrl : _urlText); _dynamicUrlInterceptors.changeBaseUrl(kIsWeb ? AppConfig.baseUrl : _urlText);
_authorizationInterceptors.setTokenAndAuthorityOidc( authorizationInterceptors.setTokenAndAuthorityOidc(
newToken: success.tokenOIDC.toToken(), newToken: success.tokenOIDC.toToken(),
newConfig: success.configuration); newConfig: success.configuration);
_authorizationIsolateInterceptors.setTokenAndAuthorityOidc( authorizationIsolateInterceptors.setTokenAndAuthorityOidc(
newToken: success.tokenOIDC.toToken(), newToken: success.tokenOIDC.toToken(),
newConfig: success.configuration); newConfig: success.configuration);
pushAndPop(AppRoutes.session, arguments: _dynamicUrlInterceptors.baseUrl); pushAndPop(AppRoutes.session, arguments: _dynamicUrlInterceptors.baseUrl);
@@ -330,8 +323,8 @@ class LoginController extends ReloadableController {
void _loginSuccessAction(AuthenticationUserSuccess success) { void _loginSuccessAction(AuthenticationUserSuccess success) {
loginState.value = LoginState(Right(success)); loginState.value = LoginState(Right(success));
_dynamicUrlInterceptors.changeBaseUrl(kIsWeb ? AppConfig.baseUrl : _urlText); _dynamicUrlInterceptors.changeBaseUrl(kIsWeb ? AppConfig.baseUrl : _urlText);
_authorizationInterceptors.setBasicAuthorization(_userNameText, _passwordText); authorizationInterceptors.setBasicAuthorization(_userNameText, _passwordText);
_authorizationIsolateInterceptors.setBasicAuthorization(_userNameText, _passwordText); authorizationIsolateInterceptors.setBasicAuthorization(_userNameText, _passwordText);
pushAndPop(AppRoutes.session, arguments: _dynamicUrlInterceptors.baseUrl); pushAndPop(AppRoutes.session, arguments: _dynamicUrlInterceptors.baseUrl);
} }
@@ -58,9 +58,9 @@ import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_controller.d
import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/search_datasource.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/search_datasource.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/session_storage_composer_datasource.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/session_storage_composer_datasource.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/spam_report_datasource.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/spam_report_datasource.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource_impl/share_preference_spam_report_data_source_impl.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource_impl/search_datasource_impl.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource_impl/search_datasource_impl.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource_impl/session_storage_composer_datasoure_impl.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource_impl/session_storage_composer_datasoure_impl.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource_impl/share_preference_spam_report_data_source_impl.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource_impl/spam_report_datasource_impl.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource_impl/spam_report_datasource_impl.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/data/local/share_preference_spam_report_data_source.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/local/share_preference_spam_report_data_source.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/data/network/spam_report_api.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/network/spam_report_api.dart';
@@ -242,10 +242,6 @@ class MailboxDashBoardBindings extends BaseBindings {
Get.find<MailboxRepository>(), Get.find<MailboxRepository>(),
Get.find<EmailRepository>()) Get.find<EmailRepository>())
); );
Get.lazyPut(() => LogoutOidcInteractor(
Get.find<AccountRepository>(),
Get.find<AuthenticationOIDCRepository>(),
));
Get.lazyPut(() => DeleteAuthorityOidcInteractor( Get.lazyPut(() => DeleteAuthorityOidcInteractor(
Get.find<AuthenticationOIDCRepository>(), Get.find<AuthenticationOIDCRepository>(),
Get.find<CredentialRepository>())); Get.find<CredentialRepository>()));
@@ -201,8 +201,6 @@ class MailboxDashBoardController extends ReloadableController {
this._deleteMultipleEmailsPermanentlyInteractor, this._deleteMultipleEmailsPermanentlyInteractor,
this._getEmailByIdInteractor, this._getEmailByIdInteractor,
) : super( ) : super(
logoutOidcInteractor,
deleteAuthorityOidcInteractor,
getAuthenticatedAccountInteractor, getAuthenticatedAccountInteractor,
updateAuthenticationAccountInteractor updateAuthenticationAccountInteractor
); );
@@ -80,10 +80,6 @@ class ManageAccountDashBoardBindings extends BaseBindings {
@override @override
void bindingsInteractor() { void bindingsInteractor() {
Get.lazyPut(() => LogoutOidcInteractor(
Get.find<AccountRepository>(),
Get.find<AuthenticationOIDCRepository>(),
));
Get.lazyPut(() => DeleteAuthorityOidcInteractor( Get.lazyPut(() => DeleteAuthorityOidcInteractor(
Get.find<AuthenticationOIDCRepository>(), Get.find<AuthenticationOIDCRepository>(),
Get.find<CredentialRepository>())); Get.find<CredentialRepository>()));
@@ -62,8 +62,6 @@ class ManageAccountDashBoardController extends ReloadableController {
GetAuthenticatedAccountInteractor getAuthenticatedAccountInteractor, GetAuthenticatedAccountInteractor getAuthenticatedAccountInteractor,
UpdateAuthenticationAccountInteractor updateAuthenticationAccountInteractor UpdateAuthenticationAccountInteractor updateAuthenticationAccountInteractor
) : super( ) : super(
logoutOidcInteractor,
deleteAuthorityOidcInteractor,
getAuthenticatedAccountInteractor, getAuthenticatedAccountInteractor,
updateAuthenticationAccountInteractor updateAuthenticationAccountInteractor
); );
@@ -70,8 +70,4 @@ class ManageAccountMenuController extends BaseController {
void backToMailboxDashBoard(BuildContext context) { void backToMailboxDashBoard(BuildContext context) {
dashBoardController.backToMailboxDashBoard(context); dashBoardController.backToMailboxDashBoard(context);
} }
void logout(){
dashBoardController.logout(dashBoardController.sessionCurrent.value, dashBoardController.accountId.value);
}
} }
@@ -98,7 +98,10 @@ class ManageAccountMenuView extends GetWidget<ManageAccountMenuController> {
Padding(padding: const EdgeInsets.only(left: 32), Padding(padding: const EdgeInsets.only(left: 32),
child: InkWell( child: InkWell(
onTap: () { onTap: () {
controller.logout(); controller.logout(
controller.dashBoardController.sessionCurrent.value,
controller.dashBoardController.accountId.value
);
}, },
child: Row(children: [ child: Row(children: [
SvgPicture.asset(_imagePaths.icSignOut, fit: BoxFit.fill), SvgPicture.asset(_imagePaths.icSignOut, fit: BoxFit.fill),
@@ -18,7 +18,6 @@ import 'package:tmail_ui_user/features/base/action/ui_action.dart';
import 'package:tmail_ui_user/features/base/base_controller.dart'; import 'package:tmail_ui_user/features/base/base_controller.dart';
import 'package:tmail_ui_user/features/caching/config/hive_cache_config.dart'; import 'package:tmail_ui_user/features/caching/config/hive_cache_config.dart';
import 'package:tmail_ui_user/features/home/presentation/home_bindings.dart'; import 'package:tmail_ui_user/features/home/presentation/home_bindings.dart';
import 'package:tmail_ui_user/features/login/data/network/config/authorization_interceptors.dart';
import 'package:tmail_ui_user/features/login/domain/state/get_authenticated_account_state.dart'; import 'package:tmail_ui_user/features/login/domain/state/get_authenticated_account_state.dart';
import 'package:tmail_ui_user/features/login/domain/state/get_credential_state.dart'; import 'package:tmail_ui_user/features/login/domain/state/get_credential_state.dart';
import 'package:tmail_ui_user/features/login/domain/state/get_stored_token_oidc_state.dart'; import 'package:tmail_ui_user/features/login/domain/state/get_stored_token_oidc_state.dart';
@@ -42,7 +41,6 @@ class FcmController extends BaseController {
GetAuthenticatedAccountInteractor? _getAuthenticatedAccountInteractor; GetAuthenticatedAccountInteractor? _getAuthenticatedAccountInteractor;
DynamicUrlInterceptors? _dynamicUrlInterceptors; DynamicUrlInterceptors? _dynamicUrlInterceptors;
AuthorizationInterceptors? _authorizationInterceptors;
FcmController._internal() { FcmController._internal() {
_listenFcmStream(); _listenFcmStream();
@@ -187,7 +185,6 @@ class FcmController extends BaseController {
try { try {
_getAuthenticatedAccountInteractor = getBinding<GetAuthenticatedAccountInteractor>(); _getAuthenticatedAccountInteractor = getBinding<GetAuthenticatedAccountInteractor>();
_dynamicUrlInterceptors = getBinding<DynamicUrlInterceptors>(); _dynamicUrlInterceptors = getBinding<DynamicUrlInterceptors>();
_authorizationInterceptors = getBinding<AuthorizationInterceptors>();
FcmTokenHandler.instance.initialize(); FcmTokenHandler.instance.initialize();
} catch (e) { } catch (e) {
logError('FcmController::_getBindings(): ${e.toString()}'); logError('FcmController::_getBindings(): ${e.toString()}');
@@ -228,7 +225,7 @@ class FcmController extends BaseController {
void _handleGetAccountByOidcSuccess(GetStoredTokenOidcSuccess storedTokenOidcSuccess) { void _handleGetAccountByOidcSuccess(GetStoredTokenOidcSuccess storedTokenOidcSuccess) {
log('FcmController::_handleGetAccountByOidcSuccess():'); log('FcmController::_handleGetAccountByOidcSuccess():');
_authorizationInterceptors?.setTokenAndAuthorityOidc( authorizationInterceptors.setTokenAndAuthorityOidc(
newToken: storedTokenOidcSuccess.tokenOidc.toToken(), newToken: storedTokenOidcSuccess.tokenOidc.toToken(),
newConfig: storedTokenOidcSuccess.oidcConfiguration newConfig: storedTokenOidcSuccess.oidcConfiguration
); );
@@ -237,7 +234,7 @@ class FcmController extends BaseController {
void _handleGetAccountByBasicAuthSuccess(GetCredentialViewState credentialViewState) { void _handleGetAccountByBasicAuthSuccess(GetCredentialViewState credentialViewState) {
log('FcmController::_handleGetAccountByBasicAuthSuccess():'); log('FcmController::_handleGetAccountByBasicAuthSuccess():');
_authorizationInterceptors?.setBasicAuthorization( authorizationInterceptors.setBasicAuthorization(
credentialViewState.userName.userName, credentialViewState.userName.userName,
credentialViewState.password.value, credentialViewState.password.value,
); );
@@ -1,14 +1,12 @@
import 'package:core/data/network/config/dynamic_url_interceptors.dart'; import 'package:core/data/network/config/dynamic_url_interceptors.dart';
import 'package:core/presentation/state/failure.dart'; import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/utils/app_toast.dart'; import 'package:core/presentation/utils/app_toast.dart';
import 'package:core/utils/app_logger.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:jmap_dart_client/jmap/core/session/session.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/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/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_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_authenticated_account_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/update_authentication_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'; 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 { class SessionController extends ReloadableController {
final GetSessionInteractor _getSessionInteractor; final GetSessionInteractor _getSessionInteractor;
final DeleteCredentialInteractor _deleteCredentialInteractor;
final CachingManager _cachingManager;
final DeleteAuthorityOidcInteractor _deleteAuthorityOidcInteractor;
final AuthorizationInterceptors _authorizationInterceptors;
final AppToast _appToast; final AppToast _appToast;
final DynamicUrlInterceptors _dynamicUrlInterceptors; final DynamicUrlInterceptors _dynamicUrlInterceptors;
@@ -36,15 +30,9 @@ class SessionController extends ReloadableController {
GetAuthenticatedAccountInteractor getAuthenticatedAccountInteractor, GetAuthenticatedAccountInteractor getAuthenticatedAccountInteractor,
UpdateAuthenticationAccountInteractor updateAuthenticationAccountInteractor, UpdateAuthenticationAccountInteractor updateAuthenticationAccountInteractor,
this._getSessionInteractor, this._getSessionInteractor,
this._deleteCredentialInteractor,
this._cachingManager,
this._deleteAuthorityOidcInteractor,
this._authorizationInterceptors,
this._appToast, this._appToast,
this._dynamicUrlInterceptors, this._dynamicUrlInterceptors,
) : super( ) : super(
logoutOidcInteractor,
deleteAuthorityOidcInteractor,
getAuthenticatedAccountInteractor, getAuthenticatedAccountInteractor,
updateAuthenticationAccountInteractor updateAuthenticationAccountInteractor
); );
@@ -80,10 +68,13 @@ class SessionController extends ReloadableController {
} }
void _handleSessionFailure(Failure failure) { void _handleSessionFailure(Failure failure) {
log('SessionController::_handleSessionFailure(): $failure');
if (failure is GetSessionFailure) { if (failure is GetSessionFailure) {
final sessionException = failure.exception; final sessionException = failure.exception;
if (_checkUrlError(sessionException) && currentContext != null) { if (_checkUrlError(sessionException) && currentContext != null) {
_appToast.showErrorToast(AppLocalizations.of(currentContext!).wrongUrlMessage); _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) { } else if (sessionException is UnknownError && currentContext != null) {
if (sessionException.message != null) { if (sessionException.message != null) {
_appToast.showErrorToast('[${sessionException.code}] ${sessionException.message}'); _appToast.showErrorToast('[${sessionException.code}] ${sessionException.message}');
@@ -100,11 +91,11 @@ class SessionController extends ReloadableController {
void _goToLogin() async { void _goToLogin() async {
await Future.wait([ await Future.wait([
_deleteCredentialInteractor.execute(), deleteCredentialInteractor.execute(),
_deleteAuthorityOidcInteractor.execute(), deleteAuthorityOidcInteractor.execute(),
_cachingManager.clearAll() cachingManager.clearAll()
]); ]);
_authorizationInterceptors.clear(); authorizationInterceptors.clear();
pushAndPopAll(AppRoutes.login); 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:core/presentation/utils/app_toast.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:tmail_ui_user/features/base/base_bindings.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/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/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/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/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/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/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/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/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/authentication_oidc_repository.dart';
import 'package:tmail_ui_user/features/login/domain/repository/credential_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_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_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_credential_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/get_stored_token_oidc_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/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/domain/usecases/get_session_interactor.dart';
import 'package:tmail_ui_user/features/session/presentation/session_controller.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'; import 'package:tmail_ui_user/main/exceptions/remote_exception_thrower.dart';
class SessionPageBindings extends BaseBindings { class SessionPageBindings extends BaseBindings {
@@ -40,10 +32,6 @@ class SessionPageBindings extends BaseBindings {
Get.find<GetAuthenticatedAccountInteractor>(), Get.find<GetAuthenticatedAccountInteractor>(),
Get.find<UpdateAuthenticationAccountInteractor>(), Get.find<UpdateAuthenticationAccountInteractor>(),
Get.find<GetSessionInteractor>(), Get.find<GetSessionInteractor>(),
Get.find<DeleteCredentialInteractor>(),
Get.find<CachingManager>(),
Get.find<DeleteAuthorityOidcInteractor>(),
Get.find<AuthorizationInterceptors>(),
Get.find<AppToast>(), Get.find<AppToast>(),
Get.find<DynamicUrlInterceptors>(), Get.find<DynamicUrlInterceptors>(),
)); ));
@@ -52,7 +40,6 @@ class SessionPageBindings extends BaseBindings {
@override @override
void bindingsDataSource() { void bindingsDataSource() {
Get.lazyPut<AuthenticationOIDCDataSource>(() => Get.find<AuthenticationOIDCDataSourceImpl>()); Get.lazyPut<AuthenticationOIDCDataSource>(() => Get.find<AuthenticationOIDCDataSourceImpl>());
Get.lazyPut<AccountDatasource>(() => Get.find<HiveAccountDatasourceImpl>());
} }
@override @override
@@ -64,9 +51,6 @@ class SessionPageBindings extends BaseBindings {
Get.find<OidcConfigurationCacheManager>(), Get.find<OidcConfigurationCacheManager>(),
Get.find<RemoteExceptionThrower>(), Get.find<RemoteExceptionThrower>(),
)); ));
Get.lazyPut(() => HiveAccountDatasourceImpl(
Get.find<AccountCacheManager>(),
Get.find<CacheExceptionThrower>()));
} }
@override @override
@@ -74,10 +58,6 @@ class SessionPageBindings extends BaseBindings {
Get.lazyPut(() => DeleteAuthorityOidcInteractor( Get.lazyPut(() => DeleteAuthorityOidcInteractor(
Get.find<AuthenticationOIDCRepository>(), Get.find<AuthenticationOIDCRepository>(),
Get.find<CredentialRepository>())); Get.find<CredentialRepository>()));
Get.lazyPut(() => LogoutOidcInteractor(
Get.find<AccountRepository>(),
Get.find<AuthenticationOIDCRepository>(),
));
Get.lazyPut(() => GetStoredTokenOidcInteractor( Get.lazyPut(() => GetStoredTokenOidcInteractor(
Get.find<AuthenticationOIDCRepository>(), Get.find<AuthenticationOIDCRepository>(),
Get.find<CredentialRepository>(), Get.find<CredentialRepository>(),
@@ -93,12 +73,10 @@ class SessionPageBindings extends BaseBindings {
@override @override
void bindingsRepository() { void bindingsRepository() {
Get.lazyPut<AuthenticationOIDCRepository>(() => Get.find<AuthenticationOIDCRepositoryImpl>()); Get.lazyPut<AuthenticationOIDCRepository>(() => Get.find<AuthenticationOIDCRepositoryImpl>());
Get.lazyPut<AccountRepository>(() => Get.find<AccountRepositoryImpl>());
} }
@override @override
void bindingsRepositoryImpl() { void bindingsRepositoryImpl() {
Get.lazyPut(() => AuthenticationOIDCRepositoryImpl(Get.find<AuthenticationOIDCDataSource>())); Get.lazyPut(() => AuthenticationOIDCRepositoryImpl(Get.find<AuthenticationOIDCDataSource>()));
Get.lazyPut(() => AccountRepositoryImpl(Get.find<AccountDatasource>()));
} }
} }
@@ -1,7 +1,6 @@
import 'package:core/data/model/source_type/data_source_type.dart'; import 'package:core/data/model/source_type/data_source_type.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:tmail_ui_user/features/base/base_bindings.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/caching/state_cache_client.dart'; import 'package:tmail_ui_user/features/caching/state_cache_client.dart';
import 'package:tmail_ui_user/features/mailbox/data/datasource/state_datasource.dart'; import 'package:tmail_ui_user/features/mailbox/data/datasource/state_datasource.dart';
import 'package:tmail_ui_user/features/mailbox/data/datasource_impl/state_datasource_impl.dart'; import 'package:tmail_ui_user/features/mailbox/data/datasource_impl/state_datasource_impl.dart';
@@ -33,7 +32,6 @@ class ThreadBindings extends BaseBindings {
Get.find<LoadMoreEmailsInMailboxInteractor>(), Get.find<LoadMoreEmailsInMailboxInteractor>(),
Get.find<SearchEmailInteractor>(), Get.find<SearchEmailInteractor>(),
Get.find<SearchMoreEmailInteractor>(), Get.find<SearchMoreEmailInteractor>(),
Get.find<CachingManager>(),
Get.find<GetEmailByIdInteractor>(), Get.find<GetEmailByIdInteractor>(),
)); ));
} }
@@ -20,7 +20,6 @@ import 'package:jmap_dart_client/jmap/mail/email/keyword_identifier.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart'; import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:model/model.dart'; import 'package:model/model.dart';
import 'package:tmail_ui_user/features/base/base_controller.dart'; import 'package:tmail_ui_user/features/base/base_controller.dart';
import 'package:tmail_ui_user/features/caching/caching_manager.dart';
import 'package:tmail_ui_user/features/composer/domain/state/save_email_as_drafts_state.dart'; import 'package:tmail_ui_user/features/composer/domain/state/save_email_as_drafts_state.dart';
import 'package:tmail_ui_user/features/composer/domain/state/send_email_state.dart'; import 'package:tmail_ui_user/features/composer/domain/state/send_email_state.dart';
import 'package:tmail_ui_user/features/composer/domain/state/update_email_drafts_state.dart'; import 'package:tmail_ui_user/features/composer/domain/state/update_email_drafts_state.dart';
@@ -81,7 +80,6 @@ class ThreadController extends BaseController with EmailActionController {
final LoadMoreEmailsInMailboxInteractor _loadMoreEmailsInMailboxInteractor; final LoadMoreEmailsInMailboxInteractor _loadMoreEmailsInMailboxInteractor;
final SearchEmailInteractor _searchEmailInteractor; final SearchEmailInteractor _searchEmailInteractor;
final SearchMoreEmailInteractor _searchMoreEmailInteractor; final SearchMoreEmailInteractor _searchMoreEmailInteractor;
final CachingManager _cachingManager;
final GetEmailByIdInteractor _getEmailByIdInteractor; final GetEmailByIdInteractor _getEmailByIdInteractor;
final listEmailDrag = <PresentationEmail>[].obs; final listEmailDrag = <PresentationEmail>[].obs;
@@ -122,7 +120,6 @@ class ThreadController extends BaseController with EmailActionController {
this._loadMoreEmailsInMailboxInteractor, this._loadMoreEmailsInMailboxInteractor,
this._searchEmailInteractor, this._searchEmailInteractor,
this._searchMoreEmailInteractor, this._searchMoreEmailInteractor,
this._cachingManager,
this._getEmailByIdInteractor, this._getEmailByIdInteractor,
); );
@@ -1,32 +1,83 @@
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
import 'package:tmail_ui_user/features/base/base_bindings.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/authentication_info_cache_manager.dart'; import 'package:tmail_ui_user/features/login/data/local/authentication_info_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/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/data/repository/credential_repository_impl.dart'; import 'package:tmail_ui_user/features/login/data/repository/credential_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/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/delete_credential_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_credential_interactor.dart';
import 'package:tmail_ui_user/features/manage_account/domain/usecases/log_out_oidc_interactor.dart';
import 'package:tmail_ui_user/main/exceptions/cache_exception_thrower.dart';
import 'package:tmail_ui_user/main/exceptions/remote_exception_thrower.dart';
class CredentialBindings extends Bindings { class CredentialBindings extends BaseBindings {
@override @override
void dependencies() {
bindingsRepositoryImpl();
bindingsRepository();
bindingsInteractor();
}
void bindingsInteractor() { void bindingsInteractor() {
Get.put(GetCredentialInteractor(Get.find<CredentialRepository>())); Get.put(GetCredentialInteractor(Get.find<CredentialRepository>()));
Get.put(DeleteCredentialInteractor(Get.find<CredentialRepository>())); Get.put(DeleteCredentialInteractor(Get.find<CredentialRepository>()));
Get.lazyPut(() => LogoutOidcInteractor(
Get.find<AccountRepository>(),
Get.find<AuthenticationOIDCRepository>(),
));
Get.lazyPut(() => DeleteAuthorityOidcInteractor(
Get.find<AuthenticationOIDCRepository>(),
Get.find<CredentialRepository>())
);
} }
@override
void bindingsDataSourceImpl() {
Get.lazyPut(() => HiveAccountDatasourceImpl(
Get.find<AccountCacheManager>(),
Get.find<CacheExceptionThrower>())
);
Get.lazyPut(() => AuthenticationOIDCDataSourceImpl(
Get.find<OIDCHttpClient>(),
Get.find<AuthenticationClientBase>(),
Get.find<TokenOidcCacheManager>(),
Get.find<OidcConfigurationCacheManager>(),
Get.find<RemoteExceptionThrower>(),
));
}
@override
void bindingsDataSource() {
Get.lazyPut<AccountDatasource>(() => Get.find<HiveAccountDatasourceImpl>());
Get.lazyPut<AuthenticationOIDCDataSource>(() => Get.find<AuthenticationOIDCDataSourceImpl>());
}
@override
void bindingsRepository() { void bindingsRepository() {
Get.put<CredentialRepository>(Get.find<CredentialRepositoryImpl>()); Get.put<CredentialRepository>(Get.find<CredentialRepositoryImpl>());
Get.lazyPut<AccountRepository>(() => Get.find<AccountRepositoryImpl>());
Get.lazyPut<AuthenticationOIDCRepository>(() => Get.find<AuthenticationOIDCRepositoryImpl>());
} }
@override
void bindingsRepositoryImpl() { void bindingsRepositoryImpl() {
Get.put(CredentialRepositoryImpl( Get.put(CredentialRepositoryImpl(
Get.find<SharedPreferences>(), Get.find<SharedPreferences>(),
Get.find<AuthenticationInfoCacheManager>())); Get.find<AuthenticationInfoCacheManager>())
);
Get.lazyPut(() => AccountRepositoryImpl(Get.find<AccountDatasource>()));
Get.lazyPut(() => AuthenticationOIDCRepositoryImpl(Get.find<AuthenticationOIDCDataSource>()));
}
@override
void bindingsController() {
} }
} }