From 29219eb14e16d16f1d2041a984dfc9877db77156 Mon Sep 17 00:00:00 2001 From: dab246 Date: Mon, 20 Mar 2023 16:59:41 +0700 Subject: [PATCH] TF-1606 Store `jmapUrl` on memory (cherry picked from commit 5e7e0f0cfb34510b5c341417044b8057cde2ca35) --- core/lib/core.dart | 1 + core/lib/data/network/config/dynamic_url_interceptors.dart | 7 +++++++ lib/features/base/reloadable/reloadable_controller.dart | 2 ++ lib/features/home/presentation/home_controller.dart | 2 ++ lib/features/login/presentation/login_controller.dart | 6 ++++-- 5 files changed, 16 insertions(+), 2 deletions(-) diff --git a/core/lib/core.dart b/core/lib/core.dart index 3a9943ed7..9739d5a2e 100644 --- a/core/lib/core.dart +++ b/core/lib/core.dart @@ -3,6 +3,7 @@ library core; // Extensions export 'presentation/extensions/color_extension.dart'; export 'presentation/extensions/url_extension.dart'; +export 'presentation/extensions/uri_extension.dart'; export 'presentation/extensions/capitalize_extension.dart'; export 'presentation/extensions/list_extensions.dart'; export 'domain/extensions/datetime_extension.dart'; diff --git a/core/lib/data/network/config/dynamic_url_interceptors.dart b/core/lib/data/network/config/dynamic_url_interceptors.dart index 1734808e2..6a5389f0f 100644 --- a/core/lib/data/network/config/dynamic_url_interceptors.dart +++ b/core/lib/data/network/config/dynamic_url_interceptors.dart @@ -1,12 +1,19 @@ import 'package:dio/dio.dart'; class DynamicUrlInterceptors extends InterceptorsWrapper { + String? _jmapUrl; String? _baseUrl; void changeBaseUrl(String? url) { _baseUrl = url; } + void setJmapUrl(String? url) { + _jmapUrl = url; + } + + String? get jmapUrl => _jmapUrl; + String? get baseUrl => _baseUrl; @override diff --git a/lib/features/base/reloadable/reloadable_controller.dart b/lib/features/base/reloadable/reloadable_controller.dart index 2fe7cb5ba..ebe9b9b85 100644 --- a/lib/features/base/reloadable/reloadable_controller.dart +++ b/lib/features/base/reloadable/reloadable_controller.dart @@ -72,6 +72,7 @@ abstract class ReloadableController extends BaseController { } void _setUpInterceptors(GetCredentialViewState credentialViewState) { + _dynamicUrlInterceptors.setJmapUrl(credentialViewState.baseUrl.origin); _dynamicUrlInterceptors.changeBaseUrl(credentialViewState.baseUrl.origin); authorizationInterceptors.setBasicAuthorization( credentialViewState.userName.userName, @@ -126,6 +127,7 @@ abstract class ReloadableController extends BaseController { } void _setUpInterceptorsOidc(GetStoredTokenOidcSuccess tokenOidcSuccess) { + _dynamicUrlInterceptors.setJmapUrl(tokenOidcSuccess.baseUrl.toString()); _dynamicUrlInterceptors.changeBaseUrl(tokenOidcSuccess.baseUrl.toString()); authorizationInterceptors.setTokenAndAuthorityOidc( newToken: tokenOidcSuccess.tokenOidc.toToken(), diff --git a/lib/features/home/presentation/home_controller.dart b/lib/features/home/presentation/home_controller.dart index 47ff9ec2a..504ce952e 100644 --- a/lib/features/home/presentation/home_controller.dart +++ b/lib/features/home/presentation/home_controller.dart @@ -183,6 +183,7 @@ class HomeController extends BaseController { } void _goToSessionWithTokenOidc(GetStoredTokenOidcSuccess storedTokenOidcSuccess) { + _dynamicUrlInterceptors.setJmapUrl(storedTokenOidcSuccess.baseUrl.toString()); _dynamicUrlInterceptors.changeBaseUrl(storedTokenOidcSuccess.baseUrl.toString()); authorizationInterceptors.setTokenAndAuthorityOidc( newToken: storedTokenOidcSuccess.tokenOidc.toToken(), @@ -194,6 +195,7 @@ class HomeController extends BaseController { } void _goToSessionWithBasicAuth(GetCredentialViewState credentialViewState) { + _dynamicUrlInterceptors.setJmapUrl(credentialViewState.baseUrl.origin); _dynamicUrlInterceptors.changeBaseUrl(credentialViewState.baseUrl.origin); authorizationInterceptors.setBasicAuthorization( credentialViewState.userName.userName, diff --git a/lib/features/login/presentation/login_controller.dart b/lib/features/login/presentation/login_controller.dart index 7ac9f62a2..25ac9c83f 100644 --- a/lib/features/login/presentation/login_controller.dart +++ b/lib/features/login/presentation/login_controller.dart @@ -306,7 +306,8 @@ class LoginController extends ReloadableController { void _getTokenOIDCSuccess(GetTokenOIDCSuccess success) { log('LoginController::_getTokenOIDCSuccess(): ${success.tokenOIDC.toString()}'); loginState.value = LoginState(Right(success)); - _dynamicUrlInterceptors.changeBaseUrl(kIsWeb ? AppConfig.baseUrl : _urlText); + _dynamicUrlInterceptors.setJmapUrl(BuildUtils.isWeb ? AppConfig.baseUrl : _urlText); + _dynamicUrlInterceptors.changeBaseUrl(BuildUtils.isWeb ? AppConfig.baseUrl : _urlText); authorizationInterceptors.setTokenAndAuthorityOidc( newToken: success.tokenOIDC.toToken(), newConfig: success.configuration); @@ -322,7 +323,8 @@ class LoginController extends ReloadableController { void _loginSuccessAction(AuthenticationUserSuccess success) { loginState.value = LoginState(Right(success)); - _dynamicUrlInterceptors.changeBaseUrl(kIsWeb ? AppConfig.baseUrl : _urlText); + _dynamicUrlInterceptors.setJmapUrl(BuildUtils.isWeb ? AppConfig.baseUrl : _urlText); + _dynamicUrlInterceptors.changeBaseUrl(BuildUtils.isWeb ? AppConfig.baseUrl : _urlText); authorizationInterceptors.setBasicAuthorization(_userNameText, _passwordText); authorizationIsolateInterceptors.setBasicAuthorization(_userNameText, _passwordText); pushAndPop(AppRoutes.session, arguments: _dynamicUrlInterceptors.baseUrl);