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/email_id_extensions.dart';
|
||||||
import 'package:model/extensions/identity_id_extension.dart';
|
import 'package:model/extensions/identity_id_extension.dart';
|
||||||
import 'package:model/extensions/mailbox_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/composer/domain/model/sending_email.dart';
|
||||||
import 'package:tmail_ui_user/features/offline_mode/model/sending_email_hive_cache.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
|
creationIdRequest?.value
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EmailRequest toEmailRequest() {
|
||||||
|
return EmailRequest(
|
||||||
|
email: email,
|
||||||
|
emailActionType: emailActionType,
|
||||||
|
sentMailboxId: sentMailboxId,
|
||||||
|
emailIdDestroyed: emailIdDestroyed,
|
||||||
|
emailIdAnsweredOrForwarded: emailIdAnsweredOrForwarded,
|
||||||
|
identityId: identityId
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
|
import 'dart:convert';
|
||||||
import 'package:core/domain/extensions/datetime_extension.dart';
|
|
||||||
import 'package:equatable/equatable.dart';
|
import 'package:equatable/equatable.dart';
|
||||||
import 'package:flutter_date_range_picker/flutter_date_range_picker.dart';
|
import 'package:flutter_date_range_picker/flutter_date_range_picker.dart';
|
||||||
import 'package:jmap_dart_client/http/converter/email_id_nullable_converter.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);
|
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
|
@override
|
||||||
List<Object?> get props => [
|
List<Object?> get props => [
|
||||||
sendingId,
|
sendingId,
|
||||||
|
|||||||
Reference in New Issue
Block a user