TF-2271 Add dnsLookupToGetJmapUrl method in login repository/datasource

Signed-off-by: dab246 <tdvu@linagora.com>
(cherry picked from commit eb311420d9f7869af07605064a4e8d442486896a)
This commit is contained in:
dab246
2023-11-10 10:48:05 +07:00
committed by Dat Vu
parent b71328a0e4
commit 6c6e406879
19 changed files with 292 additions and 202 deletions
@@ -0,0 +1,36 @@
import 'package:core/core.dart';
import 'package:tmail_ui_user/features/login/data/datasource/login_datasource.dart';
import 'package:tmail_ui_user/features/login/domain/model/recent_login_url.dart';
import 'package:tmail_ui_user/features/login/domain/model/recent_login_username.dart';
import 'package:tmail_ui_user/features/login/domain/repository/login_repository.dart';
class LoginRepositoryImpl implements LoginRepository {
final Map<DataSourceType, LoginDataSource> _loginDataSource;
LoginRepositoryImpl(this._loginDataSource);
@override
Future<void> saveRecentLoginUrl(RecentLoginUrl recentLogin) {
return _loginDataSource[DataSourceType.hiveCache]!.saveLoginUrl(recentLogin);
}
@override
Future<List<RecentLoginUrl>> getAllRecentLoginUrlLatest({int? limit, String? pattern}) {
return _loginDataSource[DataSourceType.hiveCache]!.getAllRecentLoginUrlLatest(limit: limit, pattern: pattern);
}
@override
Future<List<RecentLoginUsername>> getAllRecentLoginUsernameLatest({int? limit, String? pattern}) {
return _loginDataSource[DataSourceType.hiveCache]!.getAllRecentLoginUsernamesLatest(limit: limit, pattern: pattern);
}
@override
Future<void> saveLoginUsername(RecentLoginUsername recentLoginUsername) {
return _loginDataSource[DataSourceType.hiveCache]!.saveLoginUsername(recentLoginUsername);
}
@override
Future<String> dnsLookupToGetJmapUrl(String emailAddress) {
return _loginDataSource[DataSourceType.network]!.dnsLookupToGetJmapUrl(emailAddress);
}
}
@@ -1,19 +0,0 @@
import 'package:tmail_ui_user/features/login/data/datasource/login_url_datasource.dart';
import 'package:tmail_ui_user/features/login/domain/model/recent_login_url.dart';
import 'package:tmail_ui_user/features/login/domain/repository/login_url_repository.dart';
class LoginUrlRepositoryImpl implements LoginUrlRepository {
final LoginUrlDataSource loginInfoDataSource;
LoginUrlRepositoryImpl(this.loginInfoDataSource);
@override
Future<void> saveRecentLoginUrl(RecentLoginUrl recentLogin) {
return loginInfoDataSource.saveLoginUrl(recentLogin);
}
@override
Future<List<RecentLoginUrl>> getAllRecentLoginUrlLatest({int? limit, String? pattern}) {
return loginInfoDataSource.getAllRecentLoginUrlLatest(limit: limit, pattern: pattern);
}
}
@@ -1,19 +0,0 @@
import 'package:tmail_ui_user/features/login/data/datasource/login_username_datasource.dart';
import 'package:tmail_ui_user/features/login/domain/model/recent_login_username.dart';
import 'package:tmail_ui_user/features/login/domain/repository/login_username_repository.dart';
class LoginUsernameRepositoryImpl implements LoginUsernameRepository {
final LoginUsernameDataSource loginUsernameDatasource;
LoginUsernameRepositoryImpl(this.loginUsernameDatasource);
@override
Future<List<RecentLoginUsername>> getAllRecentLoginUsernameLatest({int? limit, String? pattern}) {
return loginUsernameDatasource.getAllRecentLoginUsernamesLatest(limit: limit, pattern: pattern);
}
@override
Future<void> saveLoginUsername(RecentLoginUsername recentLoginUsername) {
return loginUsernameDatasource.saveLoginUsername(recentLoginUsername);
}
}