TF-1842: Create extension for SendEmailRequest from SendingEmail
(cherry picked from commit e710c205b730d8120ebd8f9b4123cd8b52f1c530)
This commit is contained in:
@@ -3,6 +3,7 @@ import 'package:model/extensions/email_extension.dart';
|
||||
import 'package:model/extensions/email_id_extensions.dart';
|
||||
import 'package:model/extensions/identity_id_extension.dart';
|
||||
import 'package:model/extensions/mailbox_id_extension.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/model/sending_email.dart';
|
||||
import 'package:tmail_ui_user/features/offline_mode/model/sending_email_hive_cache.dart';
|
||||
|
||||
@@ -21,4 +22,15 @@ extension SendingEmailExtension on SendingEmail {
|
||||
creationIdRequest?.value
|
||||
);
|
||||
}
|
||||
|
||||
EmailRequest toEmailRequest() {
|
||||
return EmailRequest(
|
||||
email: email,
|
||||
emailActionType: emailActionType,
|
||||
sentMailboxId: sentMailboxId,
|
||||
emailIdDestroyed: emailIdDestroyed,
|
||||
emailIdAnsweredOrForwarded: emailIdAnsweredOrForwarded,
|
||||
identityId: identityId
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
import 'package:core/domain/extensions/datetime_extension.dart';
|
||||
import 'dart:convert';
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:flutter_date_range_picker/flutter_date_range_picker.dart';
|
||||
import 'package:jmap_dart_client/http/converter/email_id_nullable_converter.dart';
|
||||
@@ -68,6 +67,28 @@ class SendingEmail with EquatableMixin {
|
||||
return DateFormat(createTime.toPattern(), newLocale).format(createTime);
|
||||
}
|
||||
|
||||
factory SendingEmail.fromJson(Map<String, dynamic> json) {
|
||||
|
||||
return SendingEmail(
|
||||
sendingId: json['sendingId'] as String,
|
||||
email: Email.fromJson(jsonDecode(json['email'])),
|
||||
emailActionType: _getEmailActionType(json['emailActionType'] as String),
|
||||
sentMailboxId: json['sentMailboxId'] != null ? const MailboxIdNullableConverter().fromJson(json['sentMailboxId'] as String?) : null,
|
||||
emailIdDestroyed: json['emailIdDestroyed'] != null ? const EmailIdNullableConverter().fromJson(json['emailIdDestroyed'] as String?) : null,
|
||||
emailIdAnsweredOrForwarded: json['emailIdAnsweredOrForwarded'] != null ? const EmailIdNullableConverter().fromJson(json['emailIdAnsweredOrForwarded'] as String?) : null,
|
||||
identityId: json['identityId'] != null ? const IdentityIdNullableConverter().fromJson(json['identityId'] as String?) : null,
|
||||
mailboxNameRequest: json['mailboxNameRequest'] != null ? MailboxName(json['mailboxNameRequest'] as String) : null,
|
||||
creationIdRequest: json['creationIdRequest'] != null ? const IdNullableConverter().fromJson(json['creationIdRequest'] as String) : null,
|
||||
);
|
||||
}
|
||||
|
||||
static EmailActionType _getEmailActionType(String value) {
|
||||
return EmailActionType.values.firstWhere(
|
||||
(type) => type.toString().split('.').last == value,
|
||||
orElse: () => throw ArgumentError('Invalid email action type: $value'),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
List<Object?> get props => [
|
||||
sendingId,
|
||||
|
||||
Reference in New Issue
Block a user