TF-3752 Better error handling when updating recipients in Forwarding
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -8,10 +8,12 @@ import 'package:core/presentation/utils/app_toast.dart';
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/error/method/error_method_response.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/error/method/exception/error_method_response_exception.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/error/set_error.dart';
|
||||
import 'package:model/email/email_action_type.dart';
|
||||
import 'package:model/mailbox/presentation_mailbox.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/exceptions/set_method_exception.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/move_action.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/parse_email_by_blob_id_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/preview_email_from_eml_file_state.dart';
|
||||
@@ -20,6 +22,9 @@ import 'package:tmail_ui_user/features/home/domain/state/get_session_state.dart'
|
||||
import 'package:tmail_ui_user/features/login/data/network/oidc_error.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/exceptions/authentication_exception.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/state/clear_mailbox_state.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/state/add_recipient_in_forwarding_state.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/state/delete_recipient_in_forwarding_state.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/state/edit_local_copy_in_forwarding_state.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/state/export_trace_log_state.dart';
|
||||
import 'package:tmail_ui_user/features/starting_page/domain/state/sign_in_twake_workplace_state.dart';
|
||||
import 'package:tmail_ui_user/features/starting_page/domain/state/sign_up_twake_workplace_state.dart';
|
||||
@@ -93,6 +98,10 @@ class ToastManager {
|
||||
message = exception.errorMessage.isNotEmpty
|
||||
? exception.errorMessage
|
||||
: AppLocalizations.of(currentContext!).emptySpamFolderFailed;
|
||||
} else if (exception is MethodLevelErrors) {
|
||||
message = exception.message != null
|
||||
? exception.message.toString()
|
||||
: AppLocalizations.of(currentContext!).emptySpamFolderFailed;
|
||||
} else {
|
||||
message = AppLocalizations.of(currentContext!).emptySpamFolderFailed;
|
||||
}
|
||||
@@ -102,6 +111,10 @@ class ToastManager {
|
||||
message = exception.description?.trim().isNotEmpty == true
|
||||
? exception.description
|
||||
: AppLocalizations.of(currentContext!).emptyTrashFolderFailed;
|
||||
} else if (exception is MethodLevelErrors) {
|
||||
message = exception.message != null
|
||||
? exception.message.toString()
|
||||
: AppLocalizations.of(currentContext!).emptyTrashFolderFailed;
|
||||
} else if (exception is ErrorMethodResponseException) {
|
||||
message = exception.errorMessage.isNotEmpty
|
||||
? exception.errorMessage
|
||||
@@ -143,6 +156,48 @@ class ToastManager {
|
||||
} else {
|
||||
message = AppLocalizations.of(currentContext!).exportTraceLogFailed;
|
||||
}
|
||||
} else if (failure is AddRecipientsInForwardingFailure) {
|
||||
final exception = failure.exception;
|
||||
if (exception is SetMethodException && exception.mapErrors.isNotEmpty) {
|
||||
final firstError = exception.mapErrors.values.first;
|
||||
message = '[${firstError.type.value}] ${firstError.description}';
|
||||
} else if (exception is ErrorMethodResponseException &&
|
||||
exception.errorResponse is ErrorMethodResponse) {
|
||||
final errorResponse = exception.errorResponse as ErrorMethodResponse;
|
||||
message = '[${errorResponse.type.value}] ${errorResponse.description}';
|
||||
} else if (exception is MethodLevelErrors) {
|
||||
message = '[${exception.type.value}] ${exception.message}';
|
||||
} else {
|
||||
message = AppLocalizations.of(currentContext!).addRecipientsFailed;
|
||||
}
|
||||
} else if (failure is EditLocalCopyInForwardingFailure) {
|
||||
final exception = failure.exception;
|
||||
if (exception is SetMethodException && exception.mapErrors.isNotEmpty) {
|
||||
final firstError = exception.mapErrors.values.first;
|
||||
message = '[${firstError.type.value}] ${firstError.description}';
|
||||
} else if (exception is ErrorMethodResponseException &&
|
||||
exception.errorResponse is ErrorMethodResponse) {
|
||||
final errorResponse = exception.errorResponse as ErrorMethodResponse;
|
||||
message = '[${errorResponse.type.value}] ${errorResponse.description}';
|
||||
} else if (exception is MethodLevelErrors) {
|
||||
message = '[${exception.type.value}] ${exception.message}';
|
||||
} else {
|
||||
message = AppLocalizations.of(currentContext!).editLocalCopyInForwardFailed;
|
||||
}
|
||||
} else if (failure is DeleteRecipientInForwardingFailure) {
|
||||
final exception = failure.exception;
|
||||
if (exception is SetMethodException && exception.mapErrors.isNotEmpty) {
|
||||
final firstError = exception.mapErrors.values.first;
|
||||
message = '[${firstError.type.value}] ${firstError.description}';
|
||||
} else if (exception is ErrorMethodResponseException &&
|
||||
exception.errorResponse is ErrorMethodResponse) {
|
||||
final errorResponse = exception.errorResponse as ErrorMethodResponse;
|
||||
message = '[${errorResponse.type.value}] ${errorResponse.description}';
|
||||
} else if (exception is MethodLevelErrors) {
|
||||
message = '[${exception.type.value}] ${exception.message}';
|
||||
} else {
|
||||
message = AppLocalizations.of(currentContext!).deleteRecipientsFailed;
|
||||
}
|
||||
}
|
||||
|
||||
if (message?.isNotEmpty == true) {
|
||||
|
||||
Reference in New Issue
Block a user