TF-3515 Add save email as template feature

This commit is contained in:
DatDang
2025-02-25 16:10:20 +07:00
committed by Dat H. Pham
parent ef1f979c4b
commit 7f09f9ceb4
40 changed files with 1079 additions and 54 deletions
@@ -221,6 +221,46 @@ class EmailDataSourceImpl extends EmailDataSource {
}).catchError(_exceptionThrower.throwException);
}
@override
Future<Email> saveEmailAsTemplate(
Session session,
AccountId accountId,
Email email,
{
CreateNewMailboxRequest? createNewMailboxRequest,
CancelToken? cancelToken
}
) {
return Future.sync(() async {
return await emailAPI.saveEmailAsTemplate(
session,
accountId,
email,
createNewMailboxRequest: createNewMailboxRequest,
cancelToken: cancelToken
);
}).catchError(_exceptionThrower.throwException);
}
@override
Future<Email> updateEmailTemplate(
Session session,
AccountId accountId,
Email newEmail,
EmailId oldEmailId,
{CancelToken? cancelToken}
) {
return Future.sync(() async {
return await emailAPI.updateEmailTemplate(
session,
accountId,
newEmail,
oldEmailId,
cancelToken: cancelToken
);
}).catchError(_exceptionThrower.throwException);
}
@override
Future<Uint8List> downloadAttachmentForWeb(
DownloadTaskId taskId,
@@ -275,6 +275,36 @@ class EmailHiveCacheDataSourceImpl extends EmailDataSource {
return email;
}
@override
Future<Email> saveEmailAsTemplate(
Session session,
AccountId accountId,
Email email,
{
CreateNewMailboxRequest? createNewMailboxRequest,
CancelToken? cancelToken
}
) async {
await _emailCacheManager.update(accountId, session.username, created: [email]);
return email;
}
@override
Future<Email> updateEmailTemplate(
Session session,
AccountId accountId,
Email newEmail,
EmailId oldEmailId,
{CancelToken? cancelToken}
) async {
await _emailCacheManager.update(
accountId,
session.username,
updated: [newEmail],
);
return newEmail;
}
@override
Future<bool> sendEmail(
Session session,
@@ -355,4 +355,26 @@ class EmailLocalStorageDataSourceImpl extends EmailDataSource {
return htmlDocument;
}).catchError(_exceptionThrower.throwException);
}
@override
Future<Email> saveEmailAsTemplate(
Session session,
AccountId accountId,
Email email, {
CreateNewMailboxRequest? createNewMailboxRequest,
CancelToken? cancelToken,
}) {
throw UnimplementedError();
}
@override
Future<Email> updateEmailTemplate(
Session session,
AccountId accountId,
Email newEmail,
EmailId oldEmailId, {
CancelToken? cancelToken,
}) {
throw UnimplementedError();
}
}
@@ -271,4 +271,26 @@ class EmailSessionStorageDatasourceImpl extends EmailDataSource {
Future<String> generateEntireMessageAsDocument(ViewEntireMessageRequest entireMessageRequest) {
throw UnimplementedError();
}
@override
Future<Email> saveEmailAsTemplate(
Session session,
AccountId accountId,
Email email, {
CreateNewMailboxRequest? createNewMailboxRequest,
CancelToken? cancelToken,
}) {
throw UnimplementedError();
}
@override
Future<Email> updateEmailTemplate(
Session session,
AccountId accountId,
Email newEmail,
EmailId oldEmailId, {
CancelToken? cancelToken,
}) {
throw UnimplementedError();
}
}