TF-1812 Handle add sending email to queue in work manager

(cherry picked from commit c5d89665f525550949bf4e694133ce5ea2777846)
This commit is contained in:
dab246
2023-05-26 08:51:16 +07:00
committed by Dat Vu
parent c98be4cfc5
commit fc94e0aa04
14 changed files with 122 additions and 34 deletions
@@ -1,9 +1,15 @@
import 'package:equatable/equatable.dart';
import 'package:jmap_dart_client/http/converter/email_id_nullable_converter.dart';
import 'package:jmap_dart_client/http/converter/id_nullable_converter.dart';
import 'package:jmap_dart_client/http/converter/identities/identity_id_nullable_converter.dart';
import 'package:jmap_dart_client/http/converter/mailbox_id_nullable_converter.dart';
import 'package:jmap_dart_client/jmap/core/id.dart';
import 'package:jmap_dart_client/jmap/identities/identity.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:model/email/email_action_type.dart';
import 'package:model/extensions/email_extension.dart';
class SendingEmail with EquatableMixin {
final String sendingId;
@@ -28,6 +34,28 @@ class SendingEmail with EquatableMixin {
this.creationIdRequest
});
Map<String, dynamic> toJson() {
final val = <String, dynamic>{};
void writeNotNull(String key, dynamic value) {
if (value != null) {
val[key] = value;
}
}
writeNotNull('sendingId', sendingId);
writeNotNull('email', email.asString());
writeNotNull('emailActionType', emailActionType.name);
writeNotNull('sentMailboxId', const MailboxIdNullableConverter().toJson(sentMailboxId));
writeNotNull('emailIdDestroyed', const EmailIdNullableConverter().toJson(emailIdDestroyed));
writeNotNull('emailIdAnsweredOrForwarded', const EmailIdNullableConverter().toJson(emailIdAnsweredOrForwarded));
writeNotNull('identityId', const IdentityIdNullableConverter().toJson(identityId));
writeNotNull('mailboxNameRequest', mailboxNameRequest?.name);
writeNotNull('creationIdRequest', const IdNullableConverter().toJson(creationIdRequest));
return val;
}
@override
List<Object?> get props => [
sendingId,