Files
workavia-mail-front/lib/features/login/domain/extensions/oidc_configuration_extensions.dart
T

62 lines
2.2 KiB
Dart

import 'package:core/data/model/query/query_parameter.dart';
import 'package:core/data/network/config/service_path.dart';
import 'package:core/utils/platform_info.dart';
import 'package:model/oidc/oidc_configuration.dart';
import 'package:tmail_ui_user/features/login/data/extensions/service_path_extension.dart';
import 'package:tmail_ui_user/features/login/data/model/oidc_configuration_cache.dart';
import 'package:tmail_ui_user/features/login/data/network/config/oidc_constant.dart';
import 'package:tmail_ui_user/main/utils/app_config.dart';
extension OidcConfigurationExtensions on OIDCConfiguration {
String get redirectUrl {
if (PlatformInfo.isWeb) {
return AppConfig.domainRedirectUrl.endsWith('/')
? AppConfig.domainRedirectUrl + OIDCConstant.loginRedirectOidcWeb
: '${AppConfig.domainRedirectUrl}/${OIDCConstant.loginRedirectOidcWeb}';
} else {
return isTWP
? OIDCConstant.twakeWorkplaceRedirectUrl
: OIDCConstant.redirectOidcMobile;
}
}
String get logoutRedirectUrl {
if (PlatformInfo.isWeb) {
if (AppConfig.domainRedirectUrl.endsWith('/')) {
return AppConfig.domainRedirectUrl + OIDCConstant.logoutRedirectOidcWeb;
} else {
return '${AppConfig.domainRedirectUrl}/${OIDCConstant.logoutRedirectOidcWeb}';
}
} else {
return isTWP
? OIDCConstant.twakeWorkplaceRedirectUrl
: OIDCConstant.redirectOidcMobile;
}
}
String get signInTWPUrl => ServicePath(authority)
.withQueryParameters([
StringQueryParameter(
OIDCConstant.postLoginRedirectUrlPathParams,
OIDCConstant.twakeWorkplaceRedirectUrl,
),
StringQueryParameter('app', OIDCConstant.appParameter),
])
.generateEndpointPath();
String get signUpTWPUrl => ServicePath(authority)
.withQueryParameters([
StringQueryParameter(
OIDCConstant.postRegisteredRedirectUrlPathParams,
OIDCConstant.twakeWorkplaceRedirectUrl,
),
StringQueryParameter('app', OIDCConstant.appParameter),
])
.generateEndpointPath();
OidcConfigurationCache toOidcConfigurationCache() {
return OidcConfigurationCache(authority, isTWP);
}
}