Cache Linagora Ecosystem in controller for Scribe
This commit is contained in:
+2
-2
@@ -96,7 +96,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_all
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_app_dashboard_configuration_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_app_grid_linagra_ecosystem_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/get_scribe_prompt_url_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_linagora_system_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_spam_mailbox_cached_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_spam_report_state_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_stored_email_sort_order_interactor.dart';
|
||||
@@ -384,7 +384,7 @@ class MailboxDashBoardBindings extends BaseBindings {
|
||||
Get.lazyPut(() => EmptySpamFolderInteractor(Get.find<ThreadRepository>()));
|
||||
Get.lazyPut(() => GetAppDashboardConfigurationInteractor(Get.find<AppGridRepository>()));
|
||||
Get.lazyPut(() => GetAppGridLinagraEcosystemInteractor(Get.find<AppGridRepository>()));
|
||||
Get.lazyPut(() => GetScribePromptUrlInteractor(Get.find<LinagoraEcosystemRepository>()));
|
||||
Get.lazyPut(() => GetLinagoraEcosystemInteractor(Get.find<LinagoraEcosystemRepository>()));
|
||||
Get.lazyPut(() => GetEmailByIdInteractor(
|
||||
Get.find<ThreadRepository>(),
|
||||
Get.find<EmailRepository>()));
|
||||
|
||||
+8
-6
@@ -106,7 +106,7 @@ import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_action
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/exceptions/spam_report_exception.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/spam_report_state.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/get_scribe_prompt_url_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_linagora_ecosystem_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_stored_email_sort_order_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_text_formatting_menu_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/remove_email_drafts_state.dart';
|
||||
@@ -156,6 +156,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/sear
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/quick_search_filter.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/search_email_filter.dart';
|
||||
import 'package:tmail_ui_user/features/mailto/presentation/model/mailto_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/linagora_ecosystem/linagora_ecosystem.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/ai_scribe_config.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/state/create_new_rule_filter_state.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/state/get_ai_scribe_config_state.dart';
|
||||
@@ -338,6 +339,7 @@ class MailboxDashBoardController extends ReloadableController
|
||||
StreamSubscription<DeepLinkData?>? _deepLinkDataStreamSubscription;
|
||||
int minInputLengthAutocomplete = AppConfig.defaultMinInputLengthAutocomplete;
|
||||
EmailSortOrderType currentSortOrder = SearchEmailFilter.defaultSortOrder;
|
||||
LinagoraEcosystem? cachedLinagoraEcosystem;
|
||||
PaywallController? paywallController;
|
||||
final workerObxVariables = <Worker>[];
|
||||
|
||||
@@ -544,8 +546,8 @@ class MailboxDashBoardController extends ReloadableController
|
||||
updateTextFormattingMenuState(success.isDisplayed);
|
||||
} else if (success is GetAIScribeConfigSuccess) {
|
||||
handleLoadAIScribeConfigSuccess(success.aiScribeConfig);
|
||||
} else if (success is GetScribePromptUrlSuccess) {
|
||||
handleGetScribePromptUrlSuccess(success);
|
||||
} else if (success is GetLinagoraEcosystemSuccess) {
|
||||
handleGetLinagoraEcosystemSuccess(success);
|
||||
} else {
|
||||
super.handleSuccessViewState(success);
|
||||
}
|
||||
@@ -596,8 +598,8 @@ class MailboxDashBoardController extends ReloadableController
|
||||
updateTextFormattingMenuState(false);
|
||||
} else if (failure is GetAIScribeConfigFailure) {
|
||||
handleLoadAIScribeConfigFailure();
|
||||
} else if (failure is GetScribePromptUrlFailure) {
|
||||
handleGetScribePromptUrlFailure(failure);
|
||||
} else if (failure is GetLinagoraEcosystemFailure) {
|
||||
handleGetLinagoraEcosystemFailure(failure);
|
||||
} else {
|
||||
super.handleFailureViewState(failure);
|
||||
}
|
||||
@@ -929,7 +931,7 @@ class MailboxDashBoardController extends ReloadableController
|
||||
injectWebSocket(session: session, accountId: currentAccountId);
|
||||
}
|
||||
|
||||
loadScribePromptUrl();
|
||||
loadLinagoraEcosystem();
|
||||
}
|
||||
|
||||
void _handleMailtoURL(MailtoArguments arguments) {
|
||||
|
||||
+24
-19
@@ -1,44 +1,49 @@
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:scribe/scribe/ai/data/service/prompt_service.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_scribe_prompt_url_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_scribe_prompt_url_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/linagora_ecosystem/linagora_ecosystem.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_linagora_ecosystem_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_linagora_system_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||
|
||||
extension SetupScribePromptUrlExtension on MailboxDashBoardController {
|
||||
void loadScribePromptUrl() {
|
||||
final interactor = getBinding<GetScribePromptUrlInteractor>();
|
||||
|
||||
void loadLinagoraEcosystem() {
|
||||
if (cachedLinagoraEcosystem != null) {
|
||||
_applyScribePromptUrl(cachedLinagoraEcosystem!.scribePromptUrl);
|
||||
return;
|
||||
}
|
||||
|
||||
final interactor = getBinding<GetLinagoraEcosystemInteractor>();
|
||||
|
||||
if (interactor != null) {
|
||||
final baseUrl = dynamicUrlInterceptors.jmapUrl;
|
||||
if (baseUrl != null && baseUrl.isNotEmpty) {
|
||||
consumeState(interactor.execute(baseUrl));
|
||||
} else {
|
||||
logError('SetupScribePromptUrlExtension::loadScribePromptUrl: jmapUrl is null or empty');
|
||||
logError('SetupScribePromptUrlExtension::loadLinagoraEcosystem: jmapUrl is null or empty');
|
||||
}
|
||||
} else {
|
||||
logError('SetupScribePromptUrlExtension::loadScribePromptUrl: GetScribePromptUrlInteractor not found');
|
||||
logError('SetupScribePromptUrlExtension::loadLinagoraEcosystem: GetLinagoraEcosystemInteractor not found');
|
||||
}
|
||||
}
|
||||
|
||||
void handleGetScribePromptUrlSuccess(GetScribePromptUrlSuccess success) {
|
||||
final promptService = getBinding<PromptService>();
|
||||
|
||||
if (promptService != null) {
|
||||
promptService.setPromptUrl(success.promptUrl);
|
||||
} else {
|
||||
logWarning('SetupScribePromptUrlExtension::handleGetScribePromptUrlFailure: PromptService not found');
|
||||
}
|
||||
void handleGetLinagoraEcosystemSuccess(GetLinagoraEcosystemSuccess success) {
|
||||
cachedLinagoraEcosystem = success.linagoraEcosystem;
|
||||
_applyScribePromptUrl(cachedLinagoraEcosystem!.scribePromptUrl);
|
||||
}
|
||||
|
||||
void handleGetScribePromptUrlFailure(GetScribePromptUrlFailure failure) {
|
||||
logError('SetupScribePromptUrlExtension::handleGetScribePromptUrlFailure: GetScribePromptUrl failed - ${failure.exception}');
|
||||
void handleGetLinagoraEcosystemFailure(GetLinagoraEcosystemFailure failure) {
|
||||
logError('SetupScribePromptUrlExtension::handleGetLinagoraEcosystemFailure: GetScribePromptUrl failed - ${failure.exception}');
|
||||
_applyScribePromptUrl(null);
|
||||
}
|
||||
|
||||
void _applyScribePromptUrl(String? promptUrl) {
|
||||
final promptService = getBinding<PromptService>();
|
||||
|
||||
if (promptService != null) {
|
||||
promptService.setPromptUrl(null);
|
||||
promptService.setPromptUrl(promptUrl);
|
||||
} else {
|
||||
logWarning('SetupScribePromptUrlExtension::handleGetScribePromptUrlFailure: PromptService not found');
|
||||
logWarning('SetupScribePromptUrlExtension::_applyScribePromptUrl: PromptService not found');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user