From 328ff2c4f09e3bd4f2d51aeba5616ec3badf6939 Mon Sep 17 00:00:00 2001 From: Dat PHAM HOANG Date: Tue, 31 May 2022 14:32:07 +0700 Subject: [PATCH] TF-571 Store account after authenticate user with basicAuth --- .../data/repository/credential_repository_impl.dart | 2 +- .../usecases/authentication_user_interactor.dart | 11 ++++++++++- .../domain/usecases/get_credential_interactor.dart | 8 ++++---- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/lib/features/login/data/repository/credential_repository_impl.dart b/lib/features/login/data/repository/credential_repository_impl.dart index 52adc3c7d..158ae927f 100644 --- a/lib/features/login/data/repository/credential_repository_impl.dart +++ b/lib/features/login/data/repository/credential_repository_impl.dart @@ -18,7 +18,7 @@ class CredentialRepositoryImpl extends CredentialRepository { @override Future saveBaseUrl(Uri baseUrl) async { - await sharedPreferences.setString(LoginConstant.keyBaseUrl, baseUrl.origin); + await sharedPreferences.setString(LoginConstant.keyBaseUrl, baseUrl.toString()); } @override diff --git a/lib/features/login/domain/usecases/authentication_user_interactor.dart b/lib/features/login/domain/usecases/authentication_user_interactor.dart index 903106eda..607d8e4c7 100644 --- a/lib/features/login/domain/usecases/authentication_user_interactor.dart +++ b/lib/features/login/domain/usecases/authentication_user_interactor.dart @@ -1,6 +1,7 @@ import 'package:core/core.dart'; import 'package:dartz/dartz.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/credential_repository.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 { final AuthenticationRepository authenticationRepository; final CredentialRepository credentialRepository; + final AccountRepository _accountRepository; - AuthenticationInteractor(this.authenticationRepository, this.credentialRepository); + AuthenticationInteractor(this.authenticationRepository, this.credentialRepository, this._accountRepository); Future> execute(Uri baseUrl, UserName userName, Password password) async { try { + log('AuthenticationInteractor::execute(): $_accountRepository'); final user = await authenticationRepository.authenticationUser(baseUrl, userName, password); await Future.wait([ credentialRepository.saveBaseUrl(baseUrl), credentialRepository.saveUserName(userName), credentialRepository.savePassword(password), credentialRepository.saveUserProfile(user), + _accountRepository.setCurrentAccount(Account( + userName.userName, + AuthenticationType.basic, + isSelected: true + )) ]); return Right(AuthenticationUserViewState(user)); } catch (e) { + logError('AuthenticationInteractor::execute(): $e'); return Left(AuthenticationUserFailure(e)); } } diff --git a/lib/features/login/domain/usecases/get_credential_interactor.dart b/lib/features/login/domain/usecases/get_credential_interactor.dart index 1ef88d2e1..37a266cd2 100644 --- a/lib/features/login/domain/usecases/get_credential_interactor.dart +++ b/lib/features/login/domain/usecases/get_credential_interactor.dart @@ -1,10 +1,10 @@ +import 'dart:core'; + import 'package:core/core.dart'; import 'package:dartz/dartz.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/repository/credential_repository.dart'; import 'package:tmail_ui_user/features/login/domain/state/get_credential_state.dart'; class GetCredentialInteractor { @@ -20,7 +20,7 @@ class GetCredentialInteractor { if (isCredentialValid(baseUrl)) { return Right(GetCredentialViewState(baseUrl, userName, password)); } else { - return Left(GetCredentialFailure(BadCredentials())); + return Left(GetCredentialFailure(const BadCredentials())); } } catch (exception) { return Left(GetCredentialFailure(exception));