TF-571 Store account after authenticate user with basicAuth
This commit is contained in:
committed by
Dat H. Pham
parent
471465e1bc
commit
328ff2c4f0
@@ -18,7 +18,7 @@ class CredentialRepositoryImpl extends CredentialRepository {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Future saveBaseUrl(Uri baseUrl) async {
|
Future saveBaseUrl(Uri baseUrl) async {
|
||||||
await sharedPreferences.setString(LoginConstant.keyBaseUrl, baseUrl.origin);
|
await sharedPreferences.setString(LoginConstant.keyBaseUrl, baseUrl.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import 'package:core/core.dart';
|
import 'package:core/core.dart';
|
||||||
import 'package:dartz/dartz.dart';
|
import 'package:dartz/dartz.dart';
|
||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
|
import 'package:tmail_ui_user/features/login/domain/repository/account_repository.dart';
|
||||||
import 'package:tmail_ui_user/features/login/domain/repository/authentication_repository.dart';
|
import 'package:tmail_ui_user/features/login/domain/repository/authentication_repository.dart';
|
||||||
import 'package:tmail_ui_user/features/login/domain/repository/credential_repository.dart';
|
import 'package:tmail_ui_user/features/login/domain/repository/credential_repository.dart';
|
||||||
import 'package:tmail_ui_user/features/login/domain/state/authentication_user_state.dart';
|
import 'package:tmail_ui_user/features/login/domain/state/authentication_user_state.dart';
|
||||||
@@ -8,20 +9,28 @@ import 'package:tmail_ui_user/features/login/domain/state/authentication_user_st
|
|||||||
class AuthenticationInteractor {
|
class AuthenticationInteractor {
|
||||||
final AuthenticationRepository authenticationRepository;
|
final AuthenticationRepository authenticationRepository;
|
||||||
final CredentialRepository credentialRepository;
|
final CredentialRepository credentialRepository;
|
||||||
|
final AccountRepository _accountRepository;
|
||||||
|
|
||||||
AuthenticationInteractor(this.authenticationRepository, this.credentialRepository);
|
AuthenticationInteractor(this.authenticationRepository, this.credentialRepository, this._accountRepository);
|
||||||
|
|
||||||
Future<Either<Failure, Success>> execute(Uri baseUrl, UserName userName, Password password) async {
|
Future<Either<Failure, Success>> execute(Uri baseUrl, UserName userName, Password password) async {
|
||||||
try {
|
try {
|
||||||
|
log('AuthenticationInteractor::execute(): $_accountRepository');
|
||||||
final user = await authenticationRepository.authenticationUser(baseUrl, userName, password);
|
final user = await authenticationRepository.authenticationUser(baseUrl, userName, password);
|
||||||
await Future.wait([
|
await Future.wait([
|
||||||
credentialRepository.saveBaseUrl(baseUrl),
|
credentialRepository.saveBaseUrl(baseUrl),
|
||||||
credentialRepository.saveUserName(userName),
|
credentialRepository.saveUserName(userName),
|
||||||
credentialRepository.savePassword(password),
|
credentialRepository.savePassword(password),
|
||||||
credentialRepository.saveUserProfile(user),
|
credentialRepository.saveUserProfile(user),
|
||||||
|
_accountRepository.setCurrentAccount(Account(
|
||||||
|
userName.userName,
|
||||||
|
AuthenticationType.basic,
|
||||||
|
isSelected: true
|
||||||
|
))
|
||||||
]);
|
]);
|
||||||
return Right(AuthenticationUserViewState(user));
|
return Right(AuthenticationUserViewState(user));
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
logError('AuthenticationInteractor::execute(): $e');
|
||||||
return Left(AuthenticationUserFailure(e));
|
return Left(AuthenticationUserFailure(e));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
|
import 'dart:core';
|
||||||
|
|
||||||
import 'package:core/core.dart';
|
import 'package:core/core.dart';
|
||||||
import 'package:dartz/dartz.dart';
|
import 'package:dartz/dartz.dart';
|
||||||
import 'package:tmail_ui_user/features/login/domain/exceptions/authentication_exception.dart';
|
import 'package:tmail_ui_user/features/login/domain/exceptions/authentication_exception.dart';
|
||||||
import 'dart:core';
|
|
||||||
|
|
||||||
import 'package:tmail_ui_user/features/login/domain/repository/credential_repository.dart';
|
|
||||||
import 'package:tmail_ui_user/features/login/domain/extensions/uri_extension.dart';
|
import 'package:tmail_ui_user/features/login/domain/extensions/uri_extension.dart';
|
||||||
|
import 'package:tmail_ui_user/features/login/domain/repository/credential_repository.dart';
|
||||||
import 'package:tmail_ui_user/features/login/domain/state/get_credential_state.dart';
|
import 'package:tmail_ui_user/features/login/domain/state/get_credential_state.dart';
|
||||||
|
|
||||||
class GetCredentialInteractor {
|
class GetCredentialInteractor {
|
||||||
@@ -20,7 +20,7 @@ class GetCredentialInteractor {
|
|||||||
if (isCredentialValid(baseUrl)) {
|
if (isCredentialValid(baseUrl)) {
|
||||||
return Right(GetCredentialViewState(baseUrl, userName, password));
|
return Right(GetCredentialViewState(baseUrl, userName, password));
|
||||||
} else {
|
} else {
|
||||||
return Left(GetCredentialFailure(BadCredentials()));
|
return Left(GetCredentialFailure(const BadCredentials()));
|
||||||
}
|
}
|
||||||
} catch (exception) {
|
} catch (exception) {
|
||||||
return Left(GetCredentialFailure(exception));
|
return Left(GetCredentialFailure(exception));
|
||||||
|
|||||||
Reference in New Issue
Block a user