Init login feature add data layer

This commit is contained in:
dab246
2021-07-27 12:54:46 +07:00
committed by Dat H. Pham
parent f17d6630a5
commit 2fca01a405
9 changed files with 208 additions and 0 deletions
@@ -0,0 +1,14 @@
import 'package:model/model.dart';
import 'package:tmail_ui_user/features/login/data/datasource/atuthentitcation_datasource.dart';
import 'package:tmail_ui_user/features/login/domain/repository/authentication_repository.dart';
class AuthenticationRepositoryImpl extends AuthenticationRepository {
final AuthenticationDataSource loginDataSource;
AuthenticationRepositoryImpl(this.loginDataSource);
@override
Future<User> authenticationUser(Uri baseUrl, UserName userName, Password password) {
return Future.value(User(UserId(userName.userName), "Alice", "Alice"));
}
}
@@ -0,0 +1,56 @@
import 'package:model/model.dart';
import 'package:shared_preferences/shared_preferences.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;
CredentialRepositoryImpl(this.sharedPreferences);
@override
Future<Uri> getBaseUrl() async {
return Uri.parse(sharedPreferences.getString(LoginConstant.keyBaseUrl) ?? '');
}
@override
Future saveBaseUrl(Uri baseUrl) async {
await sharedPreferences.setString(LoginConstant.keyBaseUrl, baseUrl.origin);
}
@override
Future removeBaseUrl() async {
await sharedPreferences.remove(LoginConstant.keyBaseUrl);
}
@override
Future<Password> getPassword() async {
return Password(sharedPreferences.getString(LoginConstant.keyPassword) ?? '');
}
@override
Future removePassword() async {
await sharedPreferences.remove(LoginConstant.keyPassword);
}
@override
Future savePassword(Password password) async {
await sharedPreferences.setString(LoginConstant.keyPassword, password.value);
}
@override
Future<UserName> getUserName() async {
return UserName(sharedPreferences.getString(LoginConstant.keyUserName) ?? '');
}
@override
Future removeUserName() async {
await sharedPreferences.remove(LoginConstant.keyUserName);
}
@override
Future saveUserName(UserName userName) async {
await sharedPreferences.setString(LoginConstant.keyUserName, userName.userName);
}
}