TF-4186 Implement remember choose organisation server
This commit is contained in:
@@ -6,14 +6,25 @@ class GettingCompanyServerLoginInfo extends LoadingState {}
|
||||
|
||||
class GetCompanyServerLoginInfoSuccess extends UIState {
|
||||
final CompanyServerLoginInfo serverLoginInfo;
|
||||
final bool popAllRoute;
|
||||
|
||||
GetCompanyServerLoginInfoSuccess(this.serverLoginInfo);
|
||||
GetCompanyServerLoginInfoSuccess(
|
||||
this.serverLoginInfo, {
|
||||
this.popAllRoute = true,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object> get props => [serverLoginInfo];
|
||||
List<Object> get props => [serverLoginInfo, popAllRoute];
|
||||
}
|
||||
|
||||
class GetCompanyServerLoginInfoFailure extends FeatureFailure {
|
||||
GetCompanyServerLoginInfoFailure(dynamic exception)
|
||||
: super(exception: exception);
|
||||
final bool popAllRoute;
|
||||
|
||||
GetCompanyServerLoginInfoFailure(
|
||||
dynamic exception, {
|
||||
this.popAllRoute = true,
|
||||
}) : super(exception: exception);
|
||||
|
||||
@override
|
||||
List<Object> get props => [exception, popAllRoute];
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
|
||||
class RemovingCompanyServerLoginInfo extends LoadingState {}
|
||||
|
||||
class RemoveCompanyServerLoginInfoSuccess extends UIState {}
|
||||
|
||||
class RemoveCompanyServerLoginInfoFailure extends FeatureFailure {
|
||||
RemoveCompanyServerLoginInfoFailure(dynamic exception)
|
||||
: super(exception: exception);
|
||||
}
|
||||
@@ -11,14 +11,20 @@ class GetCompanyServerLoginInfoInteractor {
|
||||
|
||||
GetCompanyServerLoginInfoInteractor(this._serverLoginRepository);
|
||||
|
||||
Stream<Either<Failure, Success>> execute() async* {
|
||||
Stream<Either<Failure, Success>> execute({bool popAllRoute = true}) async* {
|
||||
try {
|
||||
yield Right(GettingCompanyServerLoginInfo());
|
||||
final serverLoginInfo =
|
||||
await _serverLoginRepository.getCompanyServerLoginInfo();
|
||||
yield Right(GetCompanyServerLoginInfoSuccess(serverLoginInfo));
|
||||
yield Right(GetCompanyServerLoginInfoSuccess(
|
||||
serverLoginInfo,
|
||||
popAllRoute: popAllRoute,
|
||||
));
|
||||
} catch (exception) {
|
||||
yield Left(GetCompanyServerLoginInfoFailure(exception));
|
||||
yield Left(GetCompanyServerLoginInfoFailure(
|
||||
exception,
|
||||
popAllRoute: popAllRoute,
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
import 'dart:core';
|
||||
|
||||
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/company_server_login_repository.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/state/remove_company_server_login_info_state.dart';
|
||||
|
||||
class RemoveCompanyServerLoginInfoInteractor {
|
||||
final CompanyServerLoginRepository _serverLoginRepository;
|
||||
|
||||
RemoveCompanyServerLoginInfoInteractor(this._serverLoginRepository);
|
||||
|
||||
Stream<Either<Failure, Success>> execute() async* {
|
||||
try {
|
||||
yield Right(RemovingCompanyServerLoginInfo());
|
||||
await _serverLoginRepository.removeCompanyServerLoginInfo();
|
||||
yield Right(RemoveCompanyServerLoginInfoSuccess());
|
||||
} catch (exception) {
|
||||
yield Left(RemoveCompanyServerLoginInfoFailure(exception));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user