TF-1813 Implement GetAllSendingEmails for domain and data layer

(cherry picked from commit 35fb38a1ed860cfa65ee57ec6d1e5e715fb1b7a7)
This commit is contained in:
dab246
2023-06-01 14:03:46 +07:00
committed by Dat Vu
parent 8756c5fefb
commit cbf770cc08
9 changed files with 113 additions and 0 deletions
@@ -193,4 +193,9 @@ class EmailDataSourceImpl extends EmailDataSource {
Future<void> storeSendingEmail(AccountId accountId, UserName userName, SendingEmail sendingEmail) {
throw UnimplementedError();
}
@override
Future<List<SendingEmail>> getAllSendingEmails(AccountId accountId, UserName userName) {
throw UnimplementedError();
}
}
@@ -30,6 +30,7 @@ import 'package:tmail_ui_user/features/email/domain/extensions/detailed_email_hi
import 'package:tmail_ui_user/features/email/domain/model/detailed_email.dart';
import 'package:tmail_ui_user/features/email/domain/model/move_to_mailbox_request.dart';
import 'package:tmail_ui_user/features/mailbox/domain/model/create_new_mailbox_request.dart';
import 'package:tmail_ui_user/features/offline_mode/extensions/list_sending_email_hive_cache_extension.dart';
import 'package:tmail_ui_user/features/offline_mode/hive_worker/hive_task.dart';
import 'package:tmail_ui_user/features/offline_mode/manager/detailed_email_cache_manager.dart';
import 'package:tmail_ui_user/features/offline_mode/manager/detailed_email_cache_worker_queue.dart';
@@ -251,4 +252,12 @@ class EmailHiveCacheDataSourceImpl extends EmailDataSource {
return await _sendingEmailCacheManager.storeSendingEmail(accountId, userName, sendingEmail.toHiveCache());
}).catchError(_exceptionThrower.throwException);
}
@override
Future<List<SendingEmail>> getAllSendingEmails(AccountId accountId, UserName userName) {
return Future.sync(() async {
final sendingEmailsCache = await _sendingEmailCacheManager.getAllSendingEmails(accountId, userName);
return sendingEmailsCache.toSendingEmails();
}).catchError(_exceptionThrower.throwException);
}
}