TF-1190 Handle SetError when send message
This commit is contained in:
@@ -1,4 +0,0 @@
|
||||
|
||||
class NotFoundOutboxMailboxException implements Exception {
|
||||
NotFoundOutboxMailboxException();
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
|
||||
import 'package:jmap_dart_client/jmap/core/error/set_error.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/id.dart';
|
||||
|
||||
class SetEmailMethodException implements Exception {
|
||||
|
||||
final Map<Id, SetError> mapErrors;
|
||||
|
||||
SetEmailMethodException(this.mapErrors);
|
||||
}
|
||||
@@ -26,5 +26,5 @@ class SendEmailFailure extends FeatureFailure {
|
||||
SendEmailFailure(this.exception);
|
||||
|
||||
@override
|
||||
List<Object> get props => [exception];
|
||||
List<Object?> get props => [exception];
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
import 'package:core/core.dart';
|
||||
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:tmail_ui_user/features/composer/domain/model/email_request.dart';
|
||||
@@ -6,14 +7,12 @@ import 'package:tmail_ui_user/features/composer/domain/state/send_email_state.da
|
||||
import 'package:tmail_ui_user/features/email/domain/repository/email_repository.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/model/create_new_mailbox_request.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/repository/mailbox_repository.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
|
||||
class SendEmailInteractor {
|
||||
final EmailRepository _emailRepository;
|
||||
final MailboxRepository _mailboxRepository;
|
||||
final Uuid _uuid;
|
||||
|
||||
SendEmailInteractor(this._emailRepository, this._mailboxRepository, this._uuid);
|
||||
SendEmailInteractor(this._emailRepository, this._mailboxRepository);
|
||||
|
||||
Stream<Either<Failure, Success>> execute(
|
||||
AccountId accountId,
|
||||
@@ -31,13 +30,21 @@ class SendEmailInteractor {
|
||||
final currentMailboxState = listState.first;
|
||||
final currentEmailState = listState.last;
|
||||
|
||||
final result = await _emailRepository.sendEmail(accountId, emailRequest, mailboxRequest: mailboxRequest);
|
||||
final result = await _emailRepository.sendEmail(
|
||||
accountId,
|
||||
emailRequest,
|
||||
mailboxRequest: mailboxRequest
|
||||
);
|
||||
|
||||
if (result) {
|
||||
yield Right<Failure, Success>(SendEmailSuccess(
|
||||
yield Right<Failure, Success>(
|
||||
SendEmailSuccess(
|
||||
currentEmailState: currentEmailState,
|
||||
currentMailboxState: currentMailboxState));
|
||||
currentMailboxState: currentMailboxState
|
||||
)
|
||||
);
|
||||
} else {
|
||||
yield Left<Failure, Success>(SendEmailFailure(result));
|
||||
yield Left<Failure, Success>(SendEmailFailure(null));
|
||||
}
|
||||
} catch (e) {
|
||||
yield Left<Failure, Success>(SendEmailFailure(e));
|
||||
|
||||
@@ -51,7 +51,6 @@ import 'package:tmail_ui_user/features/upload/presentation/controller/upload_con
|
||||
import 'package:tmail_ui_user/main/bindings/network/binding_tag.dart';
|
||||
import 'package:tmail_ui_user/main/exceptions/cache_exception_thrower.dart';
|
||||
import 'package:tmail_ui_user/main/exceptions/remote_exception_thrower.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
import 'package:worker_manager/worker_manager.dart';
|
||||
|
||||
class ComposerBindings extends BaseBindings {
|
||||
@@ -132,9 +131,9 @@ class ComposerBindings extends BaseBindings {
|
||||
Get.lazyPut(() => LocalFilePickerInteractor());
|
||||
Get.lazyPut(() => UploadAttachmentInteractor(Get.find<ComposerRepository>()));
|
||||
Get.lazyPut(() => SendEmailInteractor(
|
||||
Get.find<EmailRepository>(),
|
||||
Get.find<MailboxRepository>(),
|
||||
Get.find<Uuid>()));
|
||||
Get.find<EmailRepository>(),
|
||||
Get.find<MailboxRepository>()
|
||||
));
|
||||
Get.lazyPut(() => SaveEmailAsDraftsInteractor(
|
||||
Get.find<EmailRepository>(),
|
||||
Get.find<MailboxRepository>()));
|
||||
|
||||
Reference in New Issue
Block a user