diff --git a/lib/features/mailbox/data/datasource/mailbox_datasource.dart b/lib/features/mailbox/data/datasource/mailbox_datasource.dart index c068be34f..3342ee085 100644 --- a/lib/features/mailbox/data/datasource/mailbox_datasource.dart +++ b/lib/features/mailbox/data/datasource/mailbox_datasource.dart @@ -4,6 +4,8 @@ import 'package:core/presentation/state/failure.dart'; import 'package:core/presentation/state/success.dart'; import 'package:dartz/dartz.dart' as dartz; import 'package:jmap_dart_client/jmap/account_id.dart'; +import 'package:jmap_dart_client/jmap/core/error/set_error.dart'; +import 'package:jmap_dart_client/jmap/core/id.dart'; import 'package:jmap_dart_client/jmap/core/properties/properties.dart'; import 'package:jmap_dart_client/jmap/core/session/session.dart'; import 'package:jmap_dart_client/jmap/core/state.dart'; @@ -26,7 +28,7 @@ abstract class MailboxDataSource { Future createNewMailbox(AccountId accountId, CreateNewMailboxRequest newMailboxRequest); - Future deleteMultipleMailbox(Session session, AccountId accountId, List mailboxIds); + Future> deleteMultipleMailbox(Session session, AccountId accountId, List mailboxIds); Future renameMailbox(AccountId accountId, RenameMailboxRequest request); diff --git a/lib/features/mailbox/data/datasource_impl/mailbox_cache_datasource_impl.dart b/lib/features/mailbox/data/datasource_impl/mailbox_cache_datasource_impl.dart index d9a4b5265..4bc6cb61e 100644 --- a/lib/features/mailbox/data/datasource_impl/mailbox_cache_datasource_impl.dart +++ b/lib/features/mailbox/data/datasource_impl/mailbox_cache_datasource_impl.dart @@ -4,6 +4,8 @@ import 'package:core/presentation/state/failure.dart'; import 'package:core/presentation/state/success.dart'; import 'package:dartz/dartz.dart' as dartz; import 'package:jmap_dart_client/jmap/account_id.dart'; +import 'package:jmap_dart_client/jmap/core/error/set_error.dart'; +import 'package:jmap_dart_client/jmap/core/id.dart'; import 'package:jmap_dart_client/jmap/core/properties/properties.dart'; import 'package:jmap_dart_client/jmap/core/session/session.dart'; import 'package:jmap_dart_client/jmap/core/state.dart'; @@ -60,7 +62,7 @@ class MailboxCacheDataSourceImpl extends MailboxDataSource { } @override - Future deleteMultipleMailbox(Session session, AccountId accountId, List mailboxIds) { + Future> deleteMultipleMailbox(Session session, AccountId accountId, List mailboxIds) { throw UnimplementedError(); } diff --git a/lib/features/mailbox/data/datasource_impl/mailbox_datasource_impl.dart b/lib/features/mailbox/data/datasource_impl/mailbox_datasource_impl.dart index 950522788..957201cf6 100644 --- a/lib/features/mailbox/data/datasource_impl/mailbox_datasource_impl.dart +++ b/lib/features/mailbox/data/datasource_impl/mailbox_datasource_impl.dart @@ -4,6 +4,8 @@ import 'package:core/presentation/state/failure.dart'; import 'package:core/presentation/state/success.dart'; import 'package:dartz/dartz.dart' as dartz; import 'package:jmap_dart_client/jmap/account_id.dart'; +import 'package:jmap_dart_client/jmap/core/error/set_error.dart'; +import 'package:jmap_dart_client/jmap/core/id.dart'; import 'package:jmap_dart_client/jmap/core/properties/properties.dart'; import 'package:jmap_dart_client/jmap/core/session/session.dart'; import 'package:jmap_dart_client/jmap/core/state.dart'; @@ -65,7 +67,7 @@ class MailboxDataSourceImpl extends MailboxDataSource { } @override - Future deleteMultipleMailbox(Session session, AccountId accountId, List mailboxIds) { + Future> deleteMultipleMailbox(Session session, AccountId accountId, List mailboxIds) { return Future.sync(() async { return await mailboxAPI.deleteMultipleMailbox(session, accountId, mailboxIds); }).catchError((error) { diff --git a/lib/features/mailbox/data/repository/mailbox_repository_impl.dart b/lib/features/mailbox/data/repository/mailbox_repository_impl.dart index 4dbbb7e68..f0298a03f 100644 --- a/lib/features/mailbox/data/repository/mailbox_repository_impl.dart +++ b/lib/features/mailbox/data/repository/mailbox_repository_impl.dart @@ -5,6 +5,8 @@ import 'package:core/presentation/state/failure.dart'; import 'package:core/presentation/state/success.dart'; import 'package:dartz/dartz.dart' as dartz; import 'package:jmap_dart_client/jmap/account_id.dart'; +import 'package:jmap_dart_client/jmap/core/error/set_error.dart'; +import 'package:jmap_dart_client/jmap/core/id.dart'; import 'package:jmap_dart_client/jmap/core/properties/properties.dart'; import 'package:jmap_dart_client/jmap/core/session/session.dart'; import 'package:jmap_dart_client/jmap/core/state.dart'; @@ -155,7 +157,7 @@ class MailboxRepositoryImpl extends MailboxRepository { } @override - Future deleteMultipleMailbox(Session session, AccountId accountId, List mailboxIds) { + Future> deleteMultipleMailbox(Session session, AccountId accountId, List mailboxIds) { return mapDataSource[DataSourceType.network]!.deleteMultipleMailbox(session, accountId, mailboxIds); } diff --git a/lib/features/mailbox/domain/repository/mailbox_repository.dart b/lib/features/mailbox/domain/repository/mailbox_repository.dart index 5af75d8ac..e490c8641 100644 --- a/lib/features/mailbox/domain/repository/mailbox_repository.dart +++ b/lib/features/mailbox/domain/repository/mailbox_repository.dart @@ -4,6 +4,8 @@ import 'package:core/presentation/state/failure.dart'; import 'package:core/presentation/state/success.dart'; import 'package:dartz/dartz.dart' as dartz; import 'package:jmap_dart_client/jmap/account_id.dart'; +import 'package:jmap_dart_client/jmap/core/error/set_error.dart'; +import 'package:jmap_dart_client/jmap/core/id.dart'; import 'package:jmap_dart_client/jmap/core/properties/properties.dart'; import 'package:jmap_dart_client/jmap/core/session/session.dart'; import 'package:jmap_dart_client/jmap/core/state.dart'; @@ -21,7 +23,7 @@ abstract class MailboxRepository { Future createNewMailbox(AccountId accountId, CreateNewMailboxRequest newMailboxRequest); - Future deleteMultipleMailbox(Session session, AccountId accountId, List mailboxIds); + Future> deleteMultipleMailbox(Session session, AccountId accountId, List mailboxIds); Future renameMailbox(AccountId accountId, RenameMailboxRequest request); diff --git a/lib/features/mailbox/domain/usecases/delete_multiple_mailbox_interactor.dart b/lib/features/mailbox/domain/usecases/delete_multiple_mailbox_interactor.dart index fa825c4f5..eda3772f3 100644 --- a/lib/features/mailbox/domain/usecases/delete_multiple_mailbox_interactor.dart +++ b/lib/features/mailbox/domain/usecases/delete_multiple_mailbox_interactor.dart @@ -32,8 +32,8 @@ class DeleteMultipleMailboxInteractor { }) ); - final allSuccess = listResult.every((result) => result); - final allFailed = listResult.every((result) => !result); + final allSuccess = listResult.every((result) => result.isEmpty); + final allFailed = listResult.every((result) => result.isNotEmpty); if (allSuccess) { yield Right(DeleteMultipleMailboxAllSuccess(