TF-606 Implement store/get authority oidc
This commit is contained in:
@@ -11,4 +11,8 @@ abstract class AuthenticationOIDCRepository {
|
||||
Future<void> persistTokenOIDC(TokenOIDC tokenOidc);
|
||||
|
||||
Future<TokenOIDC> getStoredTokenOIDC(String tokenIdHash);
|
||||
|
||||
Future<void> persistAuthorityOidc(String authority);
|
||||
|
||||
Future<OIDCConfiguration> getStoredOidcConfiguration();
|
||||
}
|
||||
@@ -1,19 +1,21 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
import 'package:model/oidc/oidc_configuration.dart';
|
||||
import 'package:model/oidc/token_oidc.dart';
|
||||
|
||||
class GetStoredTokenOidcSuccess extends UIState {
|
||||
final Uri baseUrl;
|
||||
final TokenOIDC tokenOidc;
|
||||
final OIDCConfiguration oidcConfiguration;
|
||||
|
||||
GetStoredTokenOidcSuccess(this.baseUrl, this.tokenOidc);
|
||||
GetStoredTokenOidcSuccess(this.baseUrl, this.tokenOidc, this.oidcConfiguration);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [baseUrl, tokenOidc];
|
||||
List<Object?> get props => [baseUrl, tokenOidc, oidcConfiguration];
|
||||
}
|
||||
|
||||
class GetStoredTokenOidcFailure extends FeatureFailure {
|
||||
final exception;
|
||||
final dynamic exception;
|
||||
|
||||
GetStoredTokenOidcFailure(this.exception);
|
||||
|
||||
@@ -22,4 +24,4 @@ class GetStoredTokenOidcFailure extends FeatureFailure {
|
||||
|
||||
@override
|
||||
List<Object?> get props => [exception];
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@ import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:model/oidc/oidc_configuration.dart';
|
||||
import 'package:model/oidc/token_oidc.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/exceptions/authentication_exception.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/extensions/uri_extension.dart';
|
||||
@@ -20,15 +21,18 @@ class GetStoredTokenOidcInteractor {
|
||||
yield Right<Failure, Success>(LoadingState());
|
||||
final futureValue = await Future.wait([
|
||||
_credentialRepository.getBaseUrl(),
|
||||
_authenticationOIDCRepository.getStoredTokenOIDC(tokenIdHash)
|
||||
_authenticationOIDCRepository.getStoredTokenOIDC(tokenIdHash),
|
||||
_authenticationOIDCRepository.getStoredOidcConfiguration(),
|
||||
], eagerError: true);
|
||||
|
||||
final baseUrl = futureValue.first as Uri;
|
||||
final tokenOidc = futureValue.last as TokenOIDC;
|
||||
final baseUrl = futureValue[0] as Uri;
|
||||
final tokenOidc = futureValue[1] as TokenOIDC;
|
||||
final oidcConfiguration = futureValue[2] as OIDCConfiguration;
|
||||
log('GetStoredTokenOidcInteractor::execute(): $tokenOidc');
|
||||
log('GetStoredTokenOidcInteractor::execute(): oidcConfiguration: $oidcConfiguration');
|
||||
|
||||
if (_isCredentialValid(baseUrl)) {
|
||||
yield Right(GetStoredTokenOidcSuccess(baseUrl, tokenOidc));
|
||||
yield Right(GetStoredTokenOidcSuccess(baseUrl, tokenOidc, oidcConfiguration));
|
||||
} else {
|
||||
yield Left(GetStoredTokenOidcFailure(const InvalidBaseUrl()));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user