TF-939 Inject Vacation's components depend on the session capability
This commit is contained in:
committed by
Dat H. Pham
parent
2a65c30772
commit
ccc63e4fc1
@@ -24,15 +24,12 @@ import 'package:tmail_ui_user/features/manage_account/data/local/language_cache_
|
||||
import 'package:tmail_ui_user/features/manage_account/data/network/manage_account_api.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/data/repository/manage_account_repository_impl.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/repository/manage_account_repository.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_all_vacation_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/update_vacation_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/language_and_region/language_and_region_bindings.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/manage_account_dashboard_controller.dart';
|
||||
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/features/manage_account/presentation/vacation/vacation_bindings.dart';
|
||||
|
||||
class ManageAccountDashBoardBindings extends BaseBindings {
|
||||
|
||||
@@ -43,7 +40,6 @@ class ManageAccountDashBoardBindings extends BaseBindings {
|
||||
ManageAccountMenuBindings().dependencies();
|
||||
ProfileBindings().dependencies();
|
||||
LanguageAndRegionBindings().dependencies();
|
||||
VacationBindings().dependencies();
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -51,9 +47,7 @@ class ManageAccountDashBoardBindings extends BaseBindings {
|
||||
Get.lazyPut(() => ManageAccountDashBoardController(
|
||||
Get.find<LogoutOidcInteractor>(),
|
||||
Get.find<DeleteAuthorityOidcInteractor>(),
|
||||
Get.find<GetAuthenticatedAccountInteractor>(),
|
||||
Get.find<GetAllVacationInteractor>(),
|
||||
Get.find<UpdateVacationInteractor>()
|
||||
Get.find<GetAuthenticatedAccountInteractor>()
|
||||
));
|
||||
}
|
||||
|
||||
@@ -96,8 +90,6 @@ class ManageAccountDashBoardBindings extends BaseBindings {
|
||||
Get.find<GetCredentialInteractor>(),
|
||||
Get.find<GetStoredTokenOidcInteractor>(),
|
||||
));
|
||||
Get.lazyPut(() => GetAllVacationInteractor(Get.find<ManageAccountRepository>()));
|
||||
Get.lazyPut(() => UpdateVacationInteractor(Get.find<ManageAccountRepository>()));
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
@@ -25,6 +25,7 @@ import 'package:tmail_ui_user/features/manage_account/presentation/forward/forwa
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/model/account_menu_item.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/model/manage_account_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/model/settings_page_level.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/vacation/vacation_controller_bindings.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
import 'package:tmail_ui_user/main/routes/app_routes.dart';
|
||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||
@@ -35,8 +36,8 @@ class ManageAccountDashBoardController extends ReloadableController {
|
||||
final _imagePaths = Get.find<ImagePaths>();
|
||||
final _responsiveUtils = Get.find<ResponsiveUtils>();
|
||||
|
||||
final GetAllVacationInteractor _getAllVacationInteractor;
|
||||
final UpdateVacationInteractor _updateVacationInteractor;
|
||||
GetAllVacationInteractor? _getAllVacationInteractor;
|
||||
UpdateVacationInteractor? _updateVacationInteractor;
|
||||
|
||||
final menuDrawerKey = GlobalKey<ScaffoldState>(debugLabel: 'manage_account');
|
||||
|
||||
@@ -54,9 +55,7 @@ class ManageAccountDashBoardController extends ReloadableController {
|
||||
ManageAccountDashBoardController(
|
||||
LogoutOidcInteractor logoutOidcInteractor,
|
||||
DeleteAuthorityOidcInteractor deleteAuthorityOidcInteractor,
|
||||
GetAuthenticatedAccountInteractor getAuthenticatedAccountInteractor,
|
||||
this._getAllVacationInteractor,
|
||||
this._updateVacationInteractor,
|
||||
GetAuthenticatedAccountInteractor getAuthenticatedAccountInteractor
|
||||
) : super(logoutOidcInteractor,
|
||||
deleteAuthorityOidcInteractor,
|
||||
getAuthenticatedAccountInteractor);
|
||||
@@ -95,8 +94,9 @@ class ManageAccountDashBoardController extends ReloadableController {
|
||||
sessionCurrent.value = session;
|
||||
accountId.value = session.accounts.keys.first;
|
||||
_getUserProfile();
|
||||
_getVacationResponse();
|
||||
injectAutoCompleteBindings();
|
||||
injectVacationBindings(sessionCurrent.value, accountId.value);
|
||||
_getVacationResponse();
|
||||
}
|
||||
|
||||
void _getArguments() {
|
||||
@@ -106,8 +106,9 @@ class ManageAccountDashBoardController extends ReloadableController {
|
||||
sessionCurrent.value = arguments.session;
|
||||
accountId.value = sessionCurrent.value?.accounts.keys.first;
|
||||
_getUserProfile();
|
||||
_getVacationResponse();
|
||||
injectAutoCompleteBindings();
|
||||
injectVacationBindings(sessionCurrent.value, accountId.value);
|
||||
_getVacationResponse();
|
||||
if (arguments.menuSettingCurrent != null) {
|
||||
_goToSettingMenuCurrent(arguments.menuSettingCurrent!);
|
||||
}
|
||||
@@ -118,6 +119,18 @@ class ManageAccountDashBoardController extends ReloadableController {
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void injectVacationBindings(Session? session, AccountId? accountId) {
|
||||
try {
|
||||
super.injectVacationBindings(session, accountId);
|
||||
VacationControllerBindings().dependencies();
|
||||
_getAllVacationInteractor = Get.find<GetAllVacationInteractor>();
|
||||
_updateVacationInteractor = Get.find<UpdateVacationInteractor>();
|
||||
} catch (e) {
|
||||
logError('MailboxDashBoardController::injectVacationBindings(): $e');
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _getAppVersion() async {
|
||||
final info = await PackageInfo.fromPlatform();
|
||||
log('MailboxDashBoardController::_getAppVersion(): ${info.version}');
|
||||
@@ -130,8 +143,8 @@ class ManageAccountDashBoardController extends ReloadableController {
|
||||
}
|
||||
|
||||
void _getVacationResponse() {
|
||||
if (accountId.value != null) {
|
||||
consumeState(_getAllVacationInteractor.execute(accountId.value!));
|
||||
if (accountId.value != null && _getAllVacationInteractor != null) {
|
||||
consumeState(_getAllVacationInteractor!.execute(accountId.value!));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -198,11 +211,11 @@ class ManageAccountDashBoardController extends ReloadableController {
|
||||
bool checkAvailableForwardInSession() => sessionCurrent.value?.capabilities.containsKey(capabilityForward) ?? false;
|
||||
|
||||
void disableVacationResponder() {
|
||||
if (accountId.value != null) {
|
||||
if (accountId.value != null && _updateVacationInteractor != null) {
|
||||
final vacationDisabled = vacationResponse.value != null
|
||||
? vacationResponse.value!.copyWith(isEnabled: false)
|
||||
: VacationResponse(isEnabled: false);
|
||||
consumeState(_updateVacationInteractor.execute(accountId.value!, vacationDisabled));
|
||||
consumeState(_updateVacationInteractor!.execute(accountId.value!, vacationDisabled));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-4
@@ -1,12 +1,11 @@
|
||||
import 'package:get/get.dart';
|
||||
import 'package:tmail_ui_user/features/base/base_bindings.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_creator/domain/usecases/verify_name_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/repository/manage_account_repository.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_all_vacation_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/update_vacation_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/vacation/vacation_controller.dart';
|
||||
|
||||
class VacationBindings extends BaseBindings {
|
||||
class VacationControllerBindings extends BaseBindings {
|
||||
|
||||
@override
|
||||
void bindingsController() {
|
||||
@@ -26,8 +25,6 @@ class VacationBindings extends BaseBindings {
|
||||
|
||||
@override
|
||||
void bindingsInteractor() {
|
||||
Get.lazyPut(() => GetAllVacationInteractor(Get.find<ManageAccountRepository>()));
|
||||
Get.lazyPut(() => UpdateVacationInteractor(Get.find<ManageAccountRepository>()));
|
||||
Get.lazyPut(() => VerifyNameInteractor());
|
||||
}
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
import 'package:get/get_core/src/get_main.dart';
|
||||
import 'package:get/get_instance/get_instance.dart';
|
||||
import 'package:tmail_ui_user/features/base/base_bindings.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/data/datasource/vacation_data_source.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/data/datasource_impl/vacation_data_source_impl.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/data/network/vacation_api.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/data/repository/vacation_repository_impl.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/repository/vacation_repository.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_all_vacation_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/update_vacation_interactor.dart';
|
||||
|
||||
class VacationInteractorsBindings extends BaseBindings {
|
||||
@override
|
||||
void bindingsController() {
|
||||
}
|
||||
|
||||
@override
|
||||
void bindingsDataSource() {
|
||||
Get.lazyPut<VacationDataSource>(() => Get.find<VacationDataSourceImpl>());
|
||||
}
|
||||
|
||||
@override
|
||||
void bindingsDataSourceImpl() {
|
||||
Get.lazyPut(() => VacationDataSourceImpl(Get.find<VacationAPI>()));
|
||||
}
|
||||
|
||||
@override
|
||||
void bindingsInteractor() {
|
||||
Get.lazyPut(() => GetAllVacationInteractor(Get.find<VacationRepository>()));
|
||||
Get.lazyPut(() => UpdateVacationInteractor(Get.find<VacationRepository>()));
|
||||
}
|
||||
|
||||
@override
|
||||
void bindingsRepository() {
|
||||
Get.lazyPut<VacationRepository>(() => Get.find<VacationRepositoryImpl>());
|
||||
}
|
||||
|
||||
@override
|
||||
void bindingsRepositoryImpl() {
|
||||
Get.lazyPut(() => VacationRepositoryImpl(Get.find<VacationDataSource>()));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user