diff --git a/lib/features/base/reloadable/reloadable_controller.dart b/lib/features/base/reloadable/reloadable_controller.dart index ba0d98db2..25320aefd 100644 --- a/lib/features/base/reloadable/reloadable_controller.dart +++ b/lib/features/base/reloadable/reloadable_controller.dart @@ -4,6 +4,8 @@ import 'package:core/presentation/state/success.dart'; import 'package:core/utils/app_logger.dart'; import 'package:dartz/dartz.dart'; import 'package:get/get.dart'; +import 'package:jmap_dart_client/jmap/account_id.dart'; +import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart'; import 'package:jmap_dart_client/jmap/core/session/session.dart'; import 'package:model/account/authentication_type.dart'; import 'package:model/oidc/token_oidc.dart'; @@ -22,9 +24,11 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/bindings/a import 'package:tmail_ui_user/features/manage_account/data/local/language_cache_manager.dart'; import 'package:tmail_ui_user/features/manage_account/domain/state/log_out_oidc_state.dart'; import 'package:tmail_ui_user/features/manage_account/domain/usecases/log_out_oidc_interactor.dart'; +import 'package:tmail_ui_user/features/manage_account/presentation/vacation/vacation_interactors_bindings.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/main/bindings/network/binding_tag.dart'; +import 'package:tmail_ui_user/main/error/capability_validator.dart'; import 'package:tmail_ui_user/main/routes/app_routes.dart'; import 'package:tmail_ui_user/main/routes/route_navigation.dart'; @@ -181,4 +185,13 @@ abstract class ReloadableController extends BaseController { void injectAutoCompleteBindings() { AutoCompleteBindings().dependencies(); } + + void injectVacationBindings(Session? session, AccountId? accountId) { + try { + requireCapability(session!, accountId!, [CapabilityIdentifier.jmapVacationResponse]); + VacationInteractorsBindings().dependencies(); + } catch(e) { + logError('MailboxDashBoardController::injectVacationBindings(): exception: $e'); + } + } } \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart b/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart index 12661cdb5..c8ea6dfb6 100644 --- a/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart +++ b/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart @@ -14,11 +14,6 @@ import 'package:tmail_ui_user/features/email/data/network/email_api.dart'; import 'package:tmail_ui_user/features/email/data/repository/email_repository_impl.dart'; import 'package:tmail_ui_user/features/email/domain/repository/email_repository.dart'; import 'package:tmail_ui_user/features/email/domain/usecases/delete_email_permanently_interactor.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_impl/session_storage_composer_datasoure_impl.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/data/repository/composer_cache_repository_impl.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/composer_cache_repository.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_composer_cache_on_web_interactor.dart'; import 'package:tmail_ui_user/features/email/domain/usecases/move_to_mailbox_interactor.dart'; import 'package:tmail_ui_user/features/email/presentation/email_bindings.dart'; import 'package:tmail_ui_user/features/login/data/datasource/account_datasource.dart'; @@ -49,13 +44,18 @@ import 'package:tmail_ui_user/features/mailbox/data/network/mailbox_api.dart'; import 'package:tmail_ui_user/features/mailbox/data/network/mailbox_isolate_worker.dart'; import 'package:tmail_ui_user/features/mailbox/data/repository/mailbox_repository_impl.dart'; import 'package:tmail_ui_user/features/mailbox/domain/repository/mailbox_repository.dart'; +import 'package:tmail_ui_user/features/mailbox/domain/usecases/mark_as_mailbox_read_interactor.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_bindings.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_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/repository/composer_cache_repository_impl.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/repository/search_repository_impl.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/composer_cache_repository.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/search_repository.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_all_recent_search_latest_interactor.dart'; -import 'package:tmail_ui_user/features/mailbox/domain/usecases/mark_as_mailbox_read_interactor.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_composer_cache_on_web_interactor.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/quick_search_email_interactor.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_composer_cache_on_web_interactor.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_email_drafts_interactor.dart'; @@ -65,15 +65,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/download/download_controller.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/search_controller.dart'; -import 'package:tmail_ui_user/features/manage_account/data/datasource/manage_account_datasource.dart'; -import 'package:tmail_ui_user/features/manage_account/data/datasource_impl/manage_account_datasource_impl.dart'; -import 'package:tmail_ui_user/features/manage_account/data/local/language_cache_manager.dart'; -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/thread/data/datasource/thread_datasource.dart'; import 'package:tmail_ui_user/features/thread/data/datasource_impl/local_thread_datasource_impl.dart'; import 'package:tmail_ui_user/features/thread/data/datasource_impl/thread_datasource_impl.dart'; @@ -109,9 +101,7 @@ class MailboxDashBoardBindings extends BaseBindings { Get.find(), Get.find(), Get.find(), - Get.find(), - Get.find(), - Get.find(), + Get.find() )); Get.put(AdvancedFilterController()); } @@ -127,7 +117,6 @@ class MailboxDashBoardBindings extends BaseBindings { Get.lazyPut(() => Get.find()); Get.lazyPut(() => Get.find()); Get.lazyPut(() => Get.find()); - Get.lazyPut(() => Get.find()); } @override @@ -151,9 +140,6 @@ class MailboxDashBoardBindings extends BaseBindings { Get.find() )); Get.lazyPut(() => SessionStorageComposerDatasourceImpl()); - Get.lazyPut(() => ManageAccountDataSourceImpl( - Get.find(), - Get.find())); } @override @@ -193,8 +179,6 @@ class MailboxDashBoardBindings extends BaseBindings { Get.lazyPut(() => GetComposerCacheOnWebInteractor(Get.find())); Get.lazyPut(() => SaveComposerCacheOnWebInteractor(Get.find())); Get.lazyPut(() => RemoveComposerCacheOnWebInteractor(Get.find())); - Get.lazyPut(() => GetAllVacationInteractor(Get.find())); - Get.lazyPut(() => UpdateVacationInteractor(Get.find())); } @override @@ -207,7 +191,6 @@ class MailboxDashBoardBindings extends BaseBindings { Get.lazyPut(() => Get.find()); Get.lazyPut(() => Get.find()); Get.lazyPut(() => Get.find()); - Get.lazyPut(() => Get.find()); } @override @@ -236,6 +219,5 @@ class MailboxDashBoardBindings extends BaseBindings { Get.lazyPut(() => AccountRepositoryImpl(Get.find())); Get.lazyPut(() => AuthenticationOIDCRepositoryImpl(Get.find())); Get.lazyPut(() => ComposerCacheRepositoryImpl(Get.find())); - Get.lazyPut(() => ManageAccountRepositoryImpl(Get.find())); } } \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart index 426bf97c5..d562e2ca7 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart @@ -28,15 +28,15 @@ import 'package:tmail_ui_user/features/email/domain/model/move_to_mailbox_reques import 'package:tmail_ui_user/features/email/domain/state/delete_email_permanently_state.dart'; import 'package:tmail_ui_user/features/email/domain/state/move_to_mailbox_state.dart'; import 'package:tmail_ui_user/features/email/domain/usecases/delete_email_permanently_interactor.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_composer_cache_state.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_composer_cache_on_web_interactor.dart'; import 'package:tmail_ui_user/features/email/domain/usecases/move_to_mailbox_interactor.dart'; import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/delete_authority_oidc_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/get_authenticated_account_interactor.dart'; import 'package:tmail_ui_user/features/mailbox/domain/state/mark_as_mailbox_read_state.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/remove_email_drafts_state.dart'; import 'package:tmail_ui_user/features/mailbox/domain/usecases/mark_as_mailbox_read_interactor.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_composer_cache_state.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/remove_email_drafts_state.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_composer_cache_on_web_interactor.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_email_drafts_interactor.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/download/download_controller.dart'; @@ -76,8 +76,8 @@ class MailboxDashBoardController extends ReloadableController { final DeleteEmailPermanentlyInteractor _deleteEmailPermanentlyInteractor; final MarkAsMailboxReadInteractor _markAsMailboxReadInteractor; final GetComposerCacheOnWebInteractor _getEmailCacheOnWebInteractor; - final GetAllVacationInteractor _getAllVacationInteractor; - final UpdateVacationInteractor _updateVacationInteractor; + GetAllVacationInteractor? _getAllVacationInteractor; + UpdateVacationInteractor? _updateVacationInteractor; final scaffoldKey = GlobalKey(); final selectedMailbox = Rxn(); @@ -112,9 +112,7 @@ class MailboxDashBoardController extends ReloadableController { this._moveToMailboxInteractor, this._deleteEmailPermanentlyInteractor, this._markAsMailboxReadInteractor, - this._getEmailCacheOnWebInteractor, - this._getAllVacationInteractor, - this._updateVacationInteractor, + this._getEmailCacheOnWebInteractor ) : super(logoutOidcInteractor, deleteAuthorityOidcInteractor, getAuthenticatedAccountInteractor); @@ -294,6 +292,7 @@ class MailboxDashBoardController extends ReloadableController { sessionCurrent = arguments; accountId.value = sessionCurrent?.accounts.keys.first; injectAutoCompleteBindings(); + injectVacationBindings(sessionCurrent, accountId.value); } else { if (kIsWeb) { reload(); @@ -301,6 +300,17 @@ class MailboxDashBoardController extends ReloadableController { } } + @override + void injectVacationBindings(Session? session, AccountId? accountId) { + try { + super.injectVacationBindings(session, accountId); + _getAllVacationInteractor = Get.find(); + _updateVacationInteractor = Get.find(); + } catch (e) { + logError('MailboxDashBoardController::injectVacationBindings(): $e'); + } + } + Future _getAppVersion() async { final info = await PackageInfo.fromPlatform(); log('MailboxDashBoardController::_getAppVersion(): ${info.version}'); @@ -308,8 +318,8 @@ class MailboxDashBoardController extends ReloadableController { } void _getVacationResponse() { - if (accountId.value != null) { - consumeState(_getAllVacationInteractor.execute(accountId.value!)); + if (accountId.value != null && _getAllVacationInteractor != null) { + consumeState(_getAllVacationInteractor!.execute(accountId.value!)); } } @@ -469,9 +479,10 @@ class MailboxDashBoardController extends ReloadableController { sessionCurrent = session; accountId.value = sessionCurrent?.accounts.keys.first; _getUserProfile(); - _getVacationResponse(); _handleComposerCache(); injectAutoCompleteBindings(); + injectVacationBindings(sessionCurrent, accountId.value); + _getVacationResponse(); } UnsignedInt? get maxSizeAttachmentsPerEmail { @@ -616,11 +627,11 @@ class MailboxDashBoardController extends ReloadableController { } 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)); } } diff --git a/lib/features/manage_account/data/network/vacation_api.dart b/lib/features/manage_account/data/network/vacation_api.dart index 80211cbd0..b64df4126 100644 --- a/lib/features/manage_account/data/network/vacation_api.dart +++ b/lib/features/manage_account/data/network/vacation_api.dart @@ -18,10 +18,10 @@ class VacationAPI { final getVacationMethod = GetVacationMethod(accountId); final getVacationInvocation = requestBuilder.invocation(getVacationMethod); - final response = await (requestBuilder - ..usings(getVacationMethod.requiredCapabilities)) - .build() - .execute(); + final response = await(requestBuilder + ..usings(getVacationMethod.requiredCapabilities)) + .build() + .execute(); final resultList = response.parse( getVacationInvocation.methodCallId, @@ -44,9 +44,9 @@ class VacationAPI { final getVacationInvocation = requestBuilder.invocation(getVacationMethod); final response = await (requestBuilder - ..usings(setVacationMethod.requiredCapabilities)) - .build() - .execute(); + ..usings(setVacationMethod.requiredCapabilities)) + .build() + .execute(); final resultList = response.parse( getVacationInvocation.methodCallId, diff --git a/lib/features/manage_account/presentation/manage_account_dashboard_bindings.dart b/lib/features/manage_account/presentation/manage_account_dashboard_bindings.dart index d31218184..4b97dde02 100644 --- a/lib/features/manage_account/presentation/manage_account_dashboard_bindings.dart +++ b/lib/features/manage_account/presentation/manage_account_dashboard_bindings.dart @@ -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(), Get.find(), - Get.find(), - Get.find(), - Get.find() + Get.find() )); } @@ -96,8 +90,6 @@ class ManageAccountDashBoardBindings extends BaseBindings { Get.find(), Get.find(), )); - Get.lazyPut(() => GetAllVacationInteractor(Get.find())); - Get.lazyPut(() => UpdateVacationInteractor(Get.find())); } @override diff --git a/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart b/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart index cdbae9892..4666b4f19 100644 --- a/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart +++ b/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart @@ -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(); final _responsiveUtils = Get.find(); - final GetAllVacationInteractor _getAllVacationInteractor; - final UpdateVacationInteractor _updateVacationInteractor; + GetAllVacationInteractor? _getAllVacationInteractor; + UpdateVacationInteractor? _updateVacationInteractor; final menuDrawerKey = GlobalKey(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(); + _updateVacationInteractor = Get.find(); + } catch (e) { + logError('MailboxDashBoardController::injectVacationBindings(): $e'); + } + } + Future _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)); } } diff --git a/lib/features/manage_account/presentation/vacation/vacation_bindings.dart b/lib/features/manage_account/presentation/vacation/vacation_controller_bindings.dart similarity index 76% rename from lib/features/manage_account/presentation/vacation/vacation_bindings.dart rename to lib/features/manage_account/presentation/vacation/vacation_controller_bindings.dart index 04894ee57..50c6e3722 100644 --- a/lib/features/manage_account/presentation/vacation/vacation_bindings.dart +++ b/lib/features/manage_account/presentation/vacation/vacation_controller_bindings.dart @@ -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())); - Get.lazyPut(() => UpdateVacationInteractor(Get.find())); Get.lazyPut(() => VerifyNameInteractor()); } diff --git a/lib/features/manage_account/presentation/vacation/vacation_interactors_bindings.dart b/lib/features/manage_account/presentation/vacation/vacation_interactors_bindings.dart new file mode 100644 index 000000000..0dce5fd4c --- /dev/null +++ b/lib/features/manage_account/presentation/vacation/vacation_interactors_bindings.dart @@ -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(() => Get.find()); + } + + @override + void bindingsDataSourceImpl() { + Get.lazyPut(() => VacationDataSourceImpl(Get.find())); + } + + @override + void bindingsInteractor() { + Get.lazyPut(() => GetAllVacationInteractor(Get.find())); + Get.lazyPut(() => UpdateVacationInteractor(Get.find())); + } + + @override + void bindingsRepository() { + Get.lazyPut(() => Get.find()); + } + + @override + void bindingsRepositoryImpl() { + Get.lazyPut(() => VacationRepositoryImpl(Get.find())); + } +} \ No newline at end of file diff --git a/lib/main/bindings/network/network_bindings.dart b/lib/main/bindings/network/network_bindings.dart index 30b297635..85b1b35e8 100644 --- a/lib/main/bindings/network/network_bindings.dart +++ b/lib/main/bindings/network/network_bindings.dart @@ -17,6 +17,7 @@ import 'package:tmail_ui_user/features/login/data/network/oidc_http_client.dart' import 'package:tmail_ui_user/features/login/data/utils/library_platform/app_auth_plugin/app_auth_plugin.dart'; import 'package:tmail_ui_user/features/mailbox/data/network/mailbox_api.dart'; import 'package:tmail_ui_user/features/manage_account/data/network/manage_account_api.dart'; +import 'package:tmail_ui_user/features/manage_account/data/network/vacation_api.dart'; import 'package:tmail_ui_user/features/session/data/network/session_api.dart'; import 'package:tmail_ui_user/features/thread/data/network/thread_api.dart'; @@ -76,6 +77,7 @@ class NetworkBindings extends Bindings { Get.find(), Get.find())); Get.put(ManageAccountAPI(Get.find())); + Get.put(VacationAPI(Get.find())); Get.put(ContactAPI(Get.find())); }