Fix forward recipients error handling

This commit is contained in:
dab246
2025-08-26 00:50:03 +07:00
committed by Dat H. Pham
parent 5314116c76
commit cb9e38db44
15 changed files with 190 additions and 64 deletions
@@ -1,5 +1,6 @@
import 'package:forward/forward/tmail_forward.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:tmail_ui_user/features/composer/domain/exceptions/set_method_exception.dart';
import 'package:tmail_ui_user/features/manage_account/data/datasource/forwarding_datasource.dart';
import 'package:tmail_ui_user/features/manage_account/data/network/forwarding_api.dart';
import 'package:tmail_ui_user/features/manage_account/domain/model/add_recipients_in_forwarding_request.dart';
@@ -22,23 +23,41 @@ class ForwardingDataSourceImpl extends ForwardingDataSource {
}
@override
Future<TMailForward> deleteRecipientInForwarding(AccountId accountId, DeleteRecipientInForwardingRequest deleteRequest) {
Future<(TMailForward, SetMethodException?)> deleteRecipientInForwarding(
AccountId accountId,
DeleteRecipientInForwardingRequest deleteRequest,
) {
return Future.sync(() async {
return await _forwardingAPI.updateForward(accountId, deleteRequest.newTMailForward);
return await _forwardingAPI.updateForward(
accountId,
deleteRequest.newTMailForward,
);
}).catchError(_exceptionThrower.throwException);
}
@override
Future<TMailForward> addRecipientsInForwarding(AccountId accountId, AddRecipientInForwardingRequest addRequest) {
Future<(TMailForward, SetMethodException?)> addRecipientsInForwarding(
AccountId accountId,
AddRecipientInForwardingRequest addRequest,
) {
return Future.sync(() async {
return await _forwardingAPI.updateForward(accountId, addRequest.newTMailForward);
return await _forwardingAPI.updateForward(
accountId,
addRequest.newTMailForward,
);
}).catchError(_exceptionThrower.throwException);
}
@override
Future<TMailForward> editLocalCopyInForwarding(AccountId accountId, EditLocalCopyInForwardingRequest editRequest) {
Future<(TMailForward, SetMethodException?)> editLocalCopyInForwarding(
AccountId accountId,
EditLocalCopyInForwardingRequest editRequest,
) {
return Future.sync(() async {
return await _forwardingAPI.updateForward(accountId, editRequest.newTMailForward);
return await _forwardingAPI.updateForward(
accountId,
editRequest.newTMailForward,
);
}).catchError(_exceptionThrower.throwException);
}
}