From 009ab2b889160fc0472dd7e336eed00606d38c6f Mon Sep 17 00:00:00 2001 From: dab246 Date: Mon, 20 Mar 2023 17:08:41 +0700 Subject: [PATCH] TF-1606 Convert `apiUrl` to qualified url (cherry picked from commit f446fd598dfcdc0dfd041419a8a5f709606a4605) --- .../base/reloadable/reloadable_controller.dart | 16 ++++++++++++---- .../controller/mailbox_dashboard_controller.dart | 2 +- .../session/presentation/session_controller.dart | 7 ++++++- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/lib/features/base/reloadable/reloadable_controller.dart b/lib/features/base/reloadable/reloadable_controller.dart index ebe9b9b85..f00e30b1f 100644 --- a/lib/features/base/reloadable/reloadable_controller.dart +++ b/lib/features/base/reloadable/reloadable_controller.dart @@ -1,4 +1,5 @@ import 'package:core/data/network/config/dynamic_url_interceptors.dart'; +import 'package:core/presentation/extensions/uri_extension.dart'; import 'package:core/presentation/state/failure.dart'; import 'package:core/presentation/state/success.dart'; import 'package:core/utils/app_logger.dart'; @@ -109,7 +110,11 @@ abstract class ReloadableController extends BaseController { } void _handleGetSessionSuccess(GetSessionSuccess success) { - final apiUrl = success.session.apiUrl.toString(); + final jmapUrl = _dynamicUrlInterceptors.jmapUrl; + final apiUrl = jmapUrl != null + ? success.session.apiUrl.toQualifiedUrl(baseUrl: Uri.parse(jmapUrl)).toString() + : success.session.apiUrl.toString(); + log('ReloadableController::_handleGetSessionSuccess():apiUrl: $apiUrl'); if (apiUrl.isNotEmpty) { _dynamicUrlInterceptors.changeBaseUrl(apiUrl); updateAuthenticationAccount(success.session, success.session.accounts.keys.first); @@ -146,10 +151,13 @@ abstract class ReloadableController extends BaseController { } } - void updateAuthenticationAccount(Session? session, AccountId? accountId) { - final apiUrl = session?.apiUrl.toString() ?? ''; + void updateAuthenticationAccount(Session session, AccountId accountId) { + final jmapUrl = _dynamicUrlInterceptors.jmapUrl; + final apiUrl = jmapUrl != null + ? session.apiUrl.toQualifiedUrl(baseUrl: Uri.parse(jmapUrl)).toString() + : session.apiUrl.toString(); log('ReloadableController::updateAuthenticationAccount():apiUrl: $apiUrl'); - if (accountId != null && apiUrl.isNotEmpty) { + if (apiUrl.isNotEmpty) { consumeState(_updateAuthenticationAccountInteractor.execute(accountId, apiUrl)); } } 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 a99b3b38f..b7d70b0f1 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart @@ -425,7 +425,7 @@ class MailboxDashBoardController extends ReloadableController { sessionCurrent = arguments; accountId.value = sessionCurrent?.accounts.keys.first; _getUserProfile(); - updateAuthenticationAccount(sessionCurrent, accountId.value); + updateAuthenticationAccount(sessionCurrent!, accountId.value!); injectAutoCompleteBindings(sessionCurrent, accountId.value); injectRuleFilterBindings(sessionCurrent, accountId.value); injectVacationBindings(sessionCurrent, accountId.value); diff --git a/lib/features/session/presentation/session_controller.dart b/lib/features/session/presentation/session_controller.dart index e9567f078..c0c9f9cc9 100644 --- a/lib/features/session/presentation/session_controller.dart +++ b/lib/features/session/presentation/session_controller.dart @@ -1,4 +1,5 @@ import 'package:core/data/network/config/dynamic_url_interceptors.dart'; +import 'package:core/presentation/extensions/uri_extension.dart'; import 'package:core/presentation/state/failure.dart'; import 'package:core/presentation/utils/app_toast.dart'; import 'package:core/utils/app_logger.dart'; @@ -106,7 +107,11 @@ class SessionController extends ReloadableController { } void _goToMailboxDashBoard(GetSessionSuccess success) { - final apiUrl = success.session.apiUrl.toString(); + final jmapUrl = _dynamicUrlInterceptors.jmapUrl; + final apiUrl = jmapUrl != null + ? success.session.apiUrl.toQualifiedUrl(baseUrl: Uri.parse(jmapUrl)).toString() + : success.session.apiUrl.toString(); + log('SessionController::_goToMailboxDashBoard():apiUrl: $apiUrl'); if (apiUrl.isNotEmpty) { _dynamicUrlInterceptors.changeBaseUrl(apiUrl); pushAndPop(