TF-1068 add recent url
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
class RecentLoginUrl with EquatableMixin {
|
||||
final Uri url;
|
||||
final DateTime creationDate;
|
||||
|
||||
RecentLoginUrl(this.url, this.creationDate);
|
||||
|
||||
factory RecentLoginUrl.now(Uri url) =>
|
||||
RecentLoginUrl(url, DateTime.now());
|
||||
|
||||
@override
|
||||
List<Object?> get props => [url, creationDate];
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import 'package:tmail_ui_user/features/login/domain/model/recent_login_url.dart';
|
||||
|
||||
abstract class LoginUrlRepository {
|
||||
Future<void> saveRecentLoginUrl(RecentLoginUrl recentLoginUrl);
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
|
||||
class SaveRecentLoginUrlSuccess extends UIState {
|
||||
|
||||
SaveRecentLoginUrlSuccess();
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class SaveRecentLoginUrlFailed extends FeatureFailure {
|
||||
final dynamic exception;
|
||||
|
||||
SaveRecentLoginUrlFailed(this.exception);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [exception];
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
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/model/recent_login_url.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/repository/login_url_repository.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/state/save_recent_login_url_state.dart';
|
||||
|
||||
class SaveLoginUrlOnMobileInteractor {
|
||||
final LoginUrlRepository loginUrlRepository;
|
||||
|
||||
SaveLoginUrlOnMobileInteractor(this.loginUrlRepository);
|
||||
|
||||
Stream<Either<Failure, Success>> execute(RecentLoginUrl recentLoginUrl) async* {
|
||||
try{
|
||||
await loginUrlRepository.saveRecentLoginUrl(recentLoginUrl);
|
||||
yield Right(SaveRecentLoginUrlSuccess());
|
||||
} catch(e) {
|
||||
yield Left(SaveRecentLoginUrlFailed(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user