TF-148 Add data layer for cleanup email cache
This commit is contained in:
@@ -3,6 +3,7 @@ import 'package:model/model.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
import 'package:tmail_ui_user/features/caching/email_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/cleanup/domain/model/cleanup_rule.dart';
|
||||
import 'package:tmail_ui_user/features/thread/data/extensions/email_cache_extension.dart';
|
||||
import 'package:tmail_ui_user/features/thread/data/extensions/email_extension.dart';
|
||||
import 'package:tmail_ui_user/features/thread/data/extensions/list_email_cache_extension.dart';
|
||||
@@ -49,5 +50,17 @@ class EmailCacheManager {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Future<bool> clean(CleanupRule cleanupRule) async {
|
||||
final emailCacheExist = await _emailCacheClient.isExistTable();
|
||||
if (emailCacheExist) {
|
||||
final listEmailCache = await _emailCacheClient.getAll();
|
||||
final listEmailIdCacheExpire = listEmailCache
|
||||
.where((emailCache) => emailCache.expireTimeCaching(cleanupRule))
|
||||
.map((emailCache) => emailCache.id)
|
||||
.toList();
|
||||
await _emailCacheClient.deleteMultipleItem(listEmailIdCacheExpire);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user