TF-886 Implement StoreAuthenticationInfo in repository and datasource
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
import 'package:tmail_ui_user/features/caching/authentication_info_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/model/authentication_info_cache.dart';
|
||||
|
||||
class AuthenticationInfoCacheManager {
|
||||
final AuthenticationInfoCacheClient _authenticationInfoCacheClient;
|
||||
|
||||
AuthenticationInfoCacheManager(this._authenticationInfoCacheClient);
|
||||
|
||||
Future<void> storeAuthenticationInfo(AuthenticationInfoCache authenticationInfoCache) {
|
||||
return _authenticationInfoCacheClient.insertItem(
|
||||
AuthenticationInfoCache.keyCacheValue,
|
||||
authenticationInfoCache);
|
||||
}
|
||||
}
|
||||
@@ -2,14 +2,20 @@ import 'dart:convert';
|
||||
|
||||
import 'package:model/model.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/local/authentication_info_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/model/authentication_info_cache.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/utils/login_constant.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/repository/credential_repository.dart';
|
||||
|
||||
class CredentialRepositoryImpl extends CredentialRepository {
|
||||
|
||||
final SharedPreferences sharedPreferences;
|
||||
final AuthenticationInfoCacheManager _authenticationInfoCacheManager;
|
||||
|
||||
CredentialRepositoryImpl(this.sharedPreferences);
|
||||
CredentialRepositoryImpl(
|
||||
this.sharedPreferences,
|
||||
this._authenticationInfoCacheManager
|
||||
);
|
||||
|
||||
@override
|
||||
Future<Uri> getBaseUrl() async {
|
||||
@@ -74,4 +80,9 @@ class CredentialRepositoryImpl extends CredentialRepository {
|
||||
final json = jsonEncode(userProfileResponse.toJson());
|
||||
await sharedPreferences.setString(LoginConstant.keyUserProfile, json);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> storeAuthenticationInfo(AuthenticationInfoCache authenticationInfoCache) {
|
||||
return _authenticationInfoCacheManager.storeAuthenticationInfo(authenticationInfoCache);
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
|
||||
class LoginConstant {
|
||||
static const keyBaseUrl = 'KEY_BASE_URL';
|
||||
static const keyUserName = 'KEY_USER_NAME';
|
||||
static const keyPassword = 'KEY_PASSWORD';
|
||||
static const keyUserProfile = 'KEY_USER_PROFILE';
|
||||
static const String keyBaseUrl = 'KEY_BASE_URL';
|
||||
static const String keyHiveEncrypt = 'KEY_HIVE_ENCRYPT';
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
import 'package:model/model.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/model/authentication_info_cache.dart';
|
||||
|
||||
abstract class CredentialRepository {
|
||||
Future saveBaseUrl(Uri baseUrl);
|
||||
@@ -7,14 +8,10 @@ abstract class CredentialRepository {
|
||||
|
||||
Future<Uri> getBaseUrl();
|
||||
|
||||
Future saveUserName(UserName userName);
|
||||
|
||||
Future removeUserName();
|
||||
|
||||
Future<UserName> getUserName();
|
||||
|
||||
Future savePassword(Password password);
|
||||
|
||||
Future removePassword();
|
||||
|
||||
Future<Password> getPassword();
|
||||
@@ -24,4 +21,6 @@ abstract class CredentialRepository {
|
||||
Future removeUserProfile();
|
||||
|
||||
Future<UserProfile> getUserProfile();
|
||||
|
||||
Future<void> storeAuthenticationInfo(AuthenticationInfoCache authenticationInfoCache);
|
||||
}
|
||||
@@ -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/data/model/authentication_info_cache.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';
|
||||
@@ -19,8 +20,8 @@ class AuthenticationInteractor {
|
||||
final user = await authenticationRepository.authenticationUser(baseUrl, userName, password);
|
||||
await Future.wait([
|
||||
credentialRepository.saveBaseUrl(baseUrl),
|
||||
credentialRepository.saveUserName(userName),
|
||||
credentialRepository.savePassword(password),
|
||||
credentialRepository.storeAuthenticationInfo(
|
||||
AuthenticationInfoCache(userName.userName, password.value)),
|
||||
credentialRepository.saveUserProfile(user),
|
||||
_accountRepository.setCurrentAccount(Account(
|
||||
userName.userName,
|
||||
|
||||
@@ -9,6 +9,7 @@ import 'package:tmail_ui_user/features/login/data/datasource_impl/authentication
|
||||
import 'package:tmail_ui_user/features/login/data/datasource_impl/authentication_oidc_datasource_impl.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/datasource_impl/hive_account_datasource_impl.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/local/account_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/local/authentication_info_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/local/oidc_configuration_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/local/token_oidc_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/network/authentication_client/authentication_client_base.dart';
|
||||
@@ -110,7 +111,9 @@ class LoginBindings extends BaseBindings {
|
||||
|
||||
@override
|
||||
void bindingsRepositoryImpl() {
|
||||
Get.lazyPut(() => CredentialRepositoryImpl(Get.find<SharedPreferences>()));
|
||||
Get.lazyPut(() => CredentialRepositoryImpl(
|
||||
Get.find<SharedPreferences>(),
|
||||
Get.find<AuthenticationInfoCacheManager>()));
|
||||
Get.lazyPut(() => AuthenticationRepositoryImpl(Get.find<AuthenticationDataSource>()));
|
||||
Get.lazyPut(() => AuthenticationOIDCRepositoryImpl(Get.find<AuthenticationOIDCDataSource>()));
|
||||
Get.lazyPut(() => AccountRepositoryImpl(Get.find<AccountDatasource>()));
|
||||
|
||||
Reference in New Issue
Block a user