TF-1068 Implement make recent list for input of URL
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
|
||||
import 'package:jmap_dart_client/jmap/core/extensions/date_time_extension.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/model/recent_login_url.dart';
|
||||
|
||||
extension ListRecentLoginUrlExtension on List<RecentLoginUrl> {
|
||||
|
||||
void sortByCreationDate() {
|
||||
sort((recentUrl1, recentUrl2) {
|
||||
return recentUrl1.creationDate.compareToSort(recentUrl2.creationDate, false);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -2,4 +2,6 @@ import 'package:tmail_ui_user/features/login/domain/model/recent_login_url.dart'
|
||||
|
||||
abstract class LoginUrlRepository {
|
||||
Future<void> saveRecentLoginUrl(RecentLoginUrl recentLoginUrl);
|
||||
|
||||
Future<List<RecentLoginUrl>> getAllRecentLoginUrlLatest({int? limit, String? pattern});
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/model/recent_login_url.dart';
|
||||
|
||||
class GetAllRecentLoginUrlLatestSuccess extends UIState {
|
||||
|
||||
final List<RecentLoginUrl> listRecentLoginUrl;
|
||||
|
||||
GetAllRecentLoginUrlLatestSuccess(this.listRecentLoginUrl);
|
||||
|
||||
@override
|
||||
List<Object> get props => [listRecentLoginUrl];
|
||||
}
|
||||
|
||||
class GetAllRecentLoginUrlLatestFailure extends FeatureFailure {
|
||||
final dynamic exception;
|
||||
|
||||
GetAllRecentLoginUrlLatestFailure(this.exception);
|
||||
|
||||
@override
|
||||
List<Object> get props => [exception];
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/repository/login_url_repository.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/state/get_all_recent_login_url_latest_state.dart';
|
||||
|
||||
class GetAllRecentLoginUrlOnMobileInteractor {
|
||||
final LoginUrlRepository _loginUrlRepository;
|
||||
|
||||
GetAllRecentLoginUrlOnMobileInteractor(this._loginUrlRepository);
|
||||
|
||||
Future<Either<Failure, Success>> execute({int? limit, String? pattern}) async {
|
||||
try{
|
||||
final listRecentUrl = await _loginUrlRepository.getAllRecentLoginUrlLatest(
|
||||
limit: limit,
|
||||
pattern: pattern);
|
||||
return Right(GetAllRecentLoginUrlLatestSuccess(listRecentUrl));
|
||||
} catch(e) {
|
||||
return Left(GetAllRecentLoginUrlLatestFailure(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user