TF-624 Delete cache/credential when get session failure
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:tmail_ui_user/features/caching/caching_manager.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/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/state/get_session_state.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';
|
||||||
@@ -10,11 +12,15 @@ class SessionController extends GetxController {
|
|||||||
final GetSessionInteractor _getSessionInteractor;
|
final GetSessionInteractor _getSessionInteractor;
|
||||||
final DeleteCredentialInteractor _deleteCredentialInteractor;
|
final DeleteCredentialInteractor _deleteCredentialInteractor;
|
||||||
final CachingManager _cachingManager;
|
final CachingManager _cachingManager;
|
||||||
|
final DeleteAuthorityOidcInteractor _deleteAuthorityOidcInteractor;
|
||||||
|
final AuthorizationInterceptors _authorizationInterceptors;
|
||||||
|
|
||||||
SessionController(
|
SessionController(
|
||||||
this._getSessionInteractor,
|
this._getSessionInteractor,
|
||||||
this._deleteCredentialInteractor,
|
this._deleteCredentialInteractor,
|
||||||
this._cachingManager,
|
this._cachingManager,
|
||||||
|
this._deleteAuthorityOidcInteractor,
|
||||||
|
this._authorizationInterceptors,
|
||||||
);
|
);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -30,17 +36,13 @@ class SessionController extends GetxController {
|
|||||||
(success) => success is GetSessionSuccess ? _goToMailboxDashBoard(success) : _goToLogin()));
|
(success) => success is GetSessionSuccess ? _goToMailboxDashBoard(success) : _goToLogin()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void _deleteCredential() async {
|
void _goToLogin() async {
|
||||||
await _deleteCredentialInteractor.execute();
|
await Future.wait([
|
||||||
}
|
_deleteCredentialInteractor.execute(),
|
||||||
|
_deleteAuthorityOidcInteractor.execute(),
|
||||||
void _clearAllCache() async {
|
_cachingManager.clearAll()
|
||||||
await _cachingManager.clearAll();
|
]);
|
||||||
}
|
_authorizationInterceptors.clear();
|
||||||
|
|
||||||
void _goToLogin() {
|
|
||||||
_deleteCredential();
|
|
||||||
_clearAllCache();
|
|
||||||
pushAndPopAll(AppRoutes.LOGIN);
|
pushAndPopAll(AppRoutes.LOGIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,16 @@
|
|||||||
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/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/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/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';
|
||||||
@@ -13,27 +23,38 @@ class SessionPageBindings extends BaseBindings {
|
|||||||
Get.find<GetSessionInteractor>(),
|
Get.find<GetSessionInteractor>(),
|
||||||
Get.find<DeleteCredentialInteractor>(),
|
Get.find<DeleteCredentialInteractor>(),
|
||||||
Get.find<CachingManager>(),
|
Get.find<CachingManager>(),
|
||||||
|
Get.find<DeleteAuthorityOidcInteractor>(),
|
||||||
|
Get.find<AuthorizationInterceptors>(),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void bindingsDataSource() {
|
void bindingsDataSource() {
|
||||||
|
Get.lazyPut<AuthenticationOIDCDataSource>(() => Get.find<AuthenticationOIDCDataSourceImpl>());
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void bindingsDataSourceImpl() {
|
void bindingsDataSourceImpl() {
|
||||||
|
Get.lazyPut(() => AuthenticationOIDCDataSourceImpl(
|
||||||
|
Get.find<OIDCHttpClient>(),
|
||||||
|
Get.find<AuthenticationClientBase>(),
|
||||||
|
Get.find<TokenOidcCacheManager>(),
|
||||||
|
Get.find<OidcConfigurationCacheManager>()
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void bindingsInteractor() {
|
void bindingsInteractor() {
|
||||||
|
Get.lazyPut(() => DeleteAuthorityOidcInteractor(Get.find<AuthenticationOIDCRepository>()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void bindingsRepository() {
|
void bindingsRepository() {
|
||||||
|
Get.lazyPut<AuthenticationOIDCRepository>(() => Get.find<AuthenticationOIDCRepositoryImpl>());
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void bindingsRepositoryImpl() {
|
void bindingsRepositoryImpl() {
|
||||||
|
Get.lazyPut(() => AuthenticationOIDCRepositoryImpl(Get.find<AuthenticationOIDCDataSource>()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user