TF-1897 Implement resend sending email when failed
(cherry picked from commit f508b65688503e9ae8ece5a1924e84481b98a39e)
This commit is contained in:
+38
@@ -0,0 +1,38 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/user_name.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/data/exceptions/sending_queue_exceptions.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/domain/model/sending_email.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/domain/repository/sending_queue_repository.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/domain/state/update_multiple_sending_email_state.dart';
|
||||
|
||||
class UpdateMultipleSendingEmailInteractor {
|
||||
final SendingQueueRepository _sendingQueueRepository;
|
||||
|
||||
UpdateMultipleSendingEmailInteractor(this._sendingQueueRepository);
|
||||
|
||||
Stream<Either<Failure, Success>> execute(
|
||||
AccountId accountId,
|
||||
UserName userName,
|
||||
List<SendingEmail> newSendingEmails
|
||||
) async* {
|
||||
try {
|
||||
yield Right<Failure, Success>(UpdateMultipleSendingEmailLoading());
|
||||
final storedSendingEmails = await _sendingQueueRepository.updateMultipleSendingEmail(
|
||||
accountId,
|
||||
userName,
|
||||
newSendingEmails);
|
||||
if (storedSendingEmails.length == newSendingEmails.length) {
|
||||
yield Right<Failure, Success>(UpdateMultipleSendingEmailAllSuccess(storedSendingEmails));
|
||||
} else if (storedSendingEmails.isEmpty) {
|
||||
yield Left<Failure, Success>(UpdateMultipleSendingEmailAllFailure(NotFoundSendingEmailHiveObject()));
|
||||
} else {
|
||||
yield Right<Failure, Success>(UpdateMultipleSendingEmailHasSomeSuccess(storedSendingEmails));
|
||||
}
|
||||
} catch (e) {
|
||||
yield Left<Failure, Success>(UpdateMultipleSendingEmailFailure(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -15,12 +15,11 @@ class UpdateSendingEmailInteractor {
|
||||
Stream<Either<Failure, Success>> execute(
|
||||
AccountId accountId,
|
||||
UserName userName,
|
||||
SendingEmail newSendingEmail,
|
||||
{bool needToReopen = false}
|
||||
SendingEmail newSendingEmail
|
||||
) async* {
|
||||
try {
|
||||
yield Right<Failure, Success>(UpdateSendingEmailLoading());
|
||||
final storedSendingEmail = await _sendingQueueRepository.updateSendingEmail(accountId, userName, newSendingEmail, needToReopen: needToReopen);
|
||||
final storedSendingEmail = await _sendingQueueRepository.updateSendingEmail(accountId, userName, newSendingEmail);
|
||||
yield Right<Failure, Success>(UpdateSendingEmailSuccess(storedSendingEmail));
|
||||
} catch (e) {
|
||||
yield Left<Failure, Success>(UpdateSendingEmailFailure(e));
|
||||
|
||||
Reference in New Issue
Block a user