import 'package:core/data/model/source_type/data_source_type.dart'; import 'package:get/get.dart'; import 'package:tmail_ui_user/features/base/base_bindings.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_username_cache_manager.dart'; import 'package:tmail_ui_user/features/login/data/datasource/login_datasource.dart'; import 'package:tmail_ui_user/features/login/data/datasource_impl/hive_login_datasource_impl.dart'; import 'package:tmail_ui_user/features/login/data/datasource_impl/login_datasource_impl.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/dns_lookup/dns_lookup_manager.dart'; import 'package:tmail_ui_user/features/login/data/repository/login_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/login_repository.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/authenticate_oidc_on_browser_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/authentication_user_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/dns_lookup_to_get_jmap_url_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/get_all_recent_login_url_on_mobile_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/get_all_recent_login_username_on_mobile_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/get_authentication_info_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/get_oidc_configuration_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/get_stored_oidc_configuration_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/get_token_oidc_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/remove_auth_destination_url_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/save_login_url_on_mobile_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/save_login_username_on_mobile_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/try_guessing_web_finger_interactor.dart'; import 'package:tmail_ui_user/features/login/presentation/login_controller.dart'; import 'package:tmail_ui_user/features/starting_page/data/datasource/saas_authentication_datasource.dart'; import 'package:tmail_ui_user/features/starting_page/data/datasource_impl/saas_authentication_datasource_impl.dart'; import 'package:tmail_ui_user/features/starting_page/data/repository/saas_authentication_repository_impl.dart'; import 'package:tmail_ui_user/features/starting_page/domain/repository/saas_authentication_repository.dart'; import 'package:tmail_ui_user/features/starting_page/domain/usecase/sign_in_twake_workplace_interactor.dart'; import 'package:tmail_ui_user/main/exceptions/thrower/cache_exception_thrower.dart'; import 'package:tmail_ui_user/main/exceptions/thrower/remote_exception_thrower.dart'; class LoginBindings extends BaseBindings { @override void bindingsController() { Get.create(() => LoginController( Get.find(), Get.find(), Get.find(), Get.find(), Get.find(), Get.find(), Get.find(), Get.find(), Get.find(), Get.find(), Get.find(), Get.find(), Get.find(), Get.find(), Get.find(), )); } @override void bindingsDataSource() { Get.lazyPut(() => Get.find()); Get.lazyPut( () => Get.find()); } @override void bindingsDataSourceImpl() { Get.lazyPut(() => HiveLoginDataSourceImpl( Get.find(), Get.find(), Get.find() )); Get.lazyPut(() => LoginDataSourceImpl( Get.find(), Get.find(), )); Get.lazyPut(() => SaasAuthenticationDataSourceImpl( Get.find(), Get.find(), )); } @override void bindingsInteractor() { Get.lazyPut(() => SaveLoginUrlOnMobileInteractor(Get.find(),)); Get.lazyPut(() => GetAllRecentLoginUrlOnMobileInteractor(Get.find())); Get.lazyPut(() => SaveLoginUsernameOnMobileInteractor(Get.find(),)); Get.lazyPut(() => GetAllRecentLoginUsernameOnMobileInteractor(Get.find())); Get.lazyPut(() => DNSLookupToGetJmapUrlInteractor(Get.find())); Get.lazyPut(() => SignInTwakeWorkplaceInteractor( Get.find(), Get.find(), Get.find(), Get.find(), )); Get.lazyPut(() => TryGuessingWebFingerInteractor( Get.find(), )); } @override void bindingsRepository() { Get.lazyPut(() => Get.find()); Get.lazyPut( () => Get.find()); } @override void bindingsRepositoryImpl() { Get.lazyPut(() => LoginRepositoryImpl( { DataSourceType.hiveCache: Get.find(), DataSourceType.network: Get.find(), } )); Get.lazyPut(() => SaasAuthenticationRepositoryImpl( Get.find())); } }