TF-571 Setup and get OIDC configuration

This commit is contained in:
dab246
2022-05-20 13:35:03 +07:00
committed by Dat H. Pham
parent 239234f836
commit ffb5cadc16
17 changed files with 177 additions and 5 deletions
@@ -1,6 +1,9 @@
import 'package:model/oidc/oidc_configuration.dart';
import 'package:model/oidc/request/oidc_request.dart';
abstract class AuthenticationOIDCRepository {
Future<bool> checkOIDCIsAvailable(OIDCRequest oidcRequest);
Future<OIDCConfiguration> getOIDCConfiguration(Uri baseUri);
}
@@ -0,0 +1,21 @@
import 'package:core/core.dart';
import 'package:model/model.dart';
class GetOIDCConfigurationSuccess extends UIState {
final OIDCConfiguration oidcConfiguration;
GetOIDCConfigurationSuccess(this.oidcConfiguration);
@override
List<Object> get props => [oidcConfiguration];
}
class GetOIDCConfigurationFailure extends FeatureFailure {
final dynamic exception;
GetOIDCConfigurationFailure(this.exception);
@override
List<Object> get props => [exception];
}
@@ -0,0 +1,21 @@
import 'package:core/core.dart';
import 'package:dartz/dartz.dart';
import 'package:tmail_ui_user/features/login/domain/repository/authentication_oidc_repository.dart';
import 'package:tmail_ui_user/features/login/domain/state/get_oidc_configuration_state.dart';
class GetOIDCConfigurationInteractor {
final AuthenticationOIDCRepository _oidcRepository;
GetOIDCConfigurationInteractor(this._oidcRepository);
Future<Either<Failure, Success>> execute(Uri baseUri) async {
try {
final oidcConfiguration = await _oidcRepository.getOIDCConfiguration(baseUri);
log('GetOIDCConfigurationInteractor::execute(): oidcConfiguration: $oidcConfiguration');
return Right<Failure, Success>(GetOIDCConfigurationSuccess(oidcConfiguration));
} catch (e) {
log('GetOIDCConfigurationInteractor::execute(): ERROR: $e');
return Left<Failure, Success>(GetOIDCConfigurationFailure(e));
}
}
}