TF-2536 Change the logic to get all mailbox
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -0,0 +1 @@
|
||||
class NotFoundGetMailboxResponseException implements Exception {}
|
||||
@@ -0,0 +1,6 @@
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/model/mailbox_response.dart';
|
||||
|
||||
class CacheMailboxResponse extends MailboxResponse {
|
||||
|
||||
CacheMailboxResponse({required super.mailboxes, super.state});
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/model/mailbox_response.dart';
|
||||
|
||||
class FullMailboxResponse extends MailboxResponse {
|
||||
|
||||
FullMailboxResponse({required super.mailboxes, super.state});
|
||||
}
|
||||
@@ -3,21 +3,15 @@ import 'package:equatable/equatable.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/state.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
|
||||
class MailboxResponse with EquatableMixin {
|
||||
final List<Mailbox>? mailboxes;
|
||||
abstract class MailboxResponse with EquatableMixin {
|
||||
final List<Mailbox> mailboxes;
|
||||
final State? state;
|
||||
|
||||
MailboxResponse({
|
||||
this.mailboxes,
|
||||
required this.mailboxes,
|
||||
this.state
|
||||
});
|
||||
|
||||
bool hasData() {
|
||||
return mailboxes != null
|
||||
&& mailboxes!.isNotEmpty
|
||||
&& state != null;
|
||||
}
|
||||
|
||||
@override
|
||||
List<Object?> get props => [mailboxes, state];
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
import 'package:jmap_dart_client/jmap/core/id.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/model/mailbox_response.dart';
|
||||
|
||||
class PartialMailboxResponse extends MailboxResponse {
|
||||
|
||||
final List<Id> mailboxNotFound;
|
||||
|
||||
PartialMailboxResponse({
|
||||
required this.mailboxNotFound,
|
||||
required super.mailboxes,
|
||||
super.state,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [mailboxNotFound, ...super.props];
|
||||
}
|
||||
@@ -1,9 +1,10 @@
|
||||
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:jmap_dart_client/jmap/core/properties/properties.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||
import 'package:model/model.dart';
|
||||
import 'package:model/extensions/mailbox_extension.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/model/mailbox_response.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/repository/mailbox_repository.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/state/get_all_mailboxes_state.dart';
|
||||
@@ -30,8 +31,8 @@ class GetAllMailboxInteractor {
|
||||
|
||||
Either<Failure, Success> _toGetMailboxState(MailboxResponse mailboxResponse) {
|
||||
final mailboxList = mailboxResponse.mailboxes
|
||||
?.map((mailbox) => mailbox.toPresentationMailbox()).toList()
|
||||
?? List<PresentationMailbox>.empty();
|
||||
.map((mailbox) => mailbox.toPresentationMailbox())
|
||||
.toList();
|
||||
|
||||
return Right<Failure, Success>(GetAllMailboxSuccess(
|
||||
mailboxList: mailboxList,
|
||||
|
||||
@@ -7,7 +7,6 @@ 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' as jmap_state;
|
||||
import 'package:model/extensions/mailbox_extension.dart';
|
||||
import 'package:model/mailbox/presentation_mailbox.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/model/mailbox_response.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/repository/mailbox_repository.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/state/refresh_changes_all_mailboxes_state.dart';
|
||||
@@ -36,8 +35,8 @@ class RefreshAllMailboxInteractor {
|
||||
|
||||
Either<Failure, Success> _toGetMailboxState(MailboxResponse mailboxResponse) {
|
||||
final mailboxList = mailboxResponse.mailboxes
|
||||
?.map((mailbox) => mailbox.toPresentationMailbox()).toList()
|
||||
?? List<PresentationMailbox>.empty();
|
||||
.map((mailbox) => mailbox.toPresentationMailbox())
|
||||
.toList();
|
||||
|
||||
return Right<Failure, Success>(RefreshChangesAllMailboxSuccess(
|
||||
mailboxList: mailboxList,
|
||||
|
||||
Reference in New Issue
Block a user