Migrate Hive box To IsolatedHive box
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -6,13 +6,14 @@ import 'package:jmap_dart_client/jmap/core/user_name.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:model/model.dart';
|
||||
import 'package:tmail_ui_user/features/caching/clients/new_email_hive_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/caching/interaction/cache_manager_interaction.dart';
|
||||
import 'package:tmail_ui_user/features/caching/utils/cache_utils.dart';
|
||||
import 'package:tmail_ui_user/features/caching/utils/caching_constants.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/exceptions/email_cache_exceptions.dart';
|
||||
import 'package:tmail_ui_user/features/offline_mode/extensions/list_detailed_email_hive_cache_extension.dart';
|
||||
import 'package:tmail_ui_user/features/offline_mode/model/detailed_email_hive_cache.dart';
|
||||
|
||||
class NewEmailCacheManager {
|
||||
class NewEmailCacheManager extends CacheManagerInteraction {
|
||||
|
||||
final NewEmailHiveCacheClient _cacheClient;
|
||||
final FileUtils _fileUtils;
|
||||
@@ -81,4 +82,23 @@ class NewEmailCacheManager {
|
||||
throw NotFoundStoredNewEmailException();
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> clear() => _cacheClient.clearAllData();
|
||||
|
||||
Future<void> deleteByKey(String key) =>
|
||||
_cacheClient.clearAllDataContainKey(key);
|
||||
|
||||
@override
|
||||
Future<void> migrateHiveToIsolatedHive() async {
|
||||
try {
|
||||
final legacyMapItems = await _cacheClient.getMapItems(
|
||||
isolated: false,
|
||||
);
|
||||
log('$runtimeType::migrateHiveToIsolatedHive(): Length of legacyMapItems: ${legacyMapItems.length}');
|
||||
await _cacheClient.insertMultipleItem(legacyMapItems);
|
||||
log('$runtimeType::migrateHiveToIsolatedHive(): ✅ Migrate Hive box "${_cacheClient.tableName}" → IsolatedHive DONE');
|
||||
} catch (e) {
|
||||
logError('$runtimeType::migrateHiveToIsolatedHive(): ❌ Migrate Hive box "${_cacheClient.tableName}" → IsolatedHive FAILED, Error: $e');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,13 +6,14 @@ import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:model/extensions/account_id_extensions.dart';
|
||||
import 'package:model/extensions/email_id_extensions.dart';
|
||||
import 'package:tmail_ui_user/features/caching/clients/opened_email_hive_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/caching/interaction/cache_manager_interaction.dart';
|
||||
import 'package:tmail_ui_user/features/caching/utils/cache_utils.dart';
|
||||
import 'package:tmail_ui_user/features/caching/utils/caching_constants.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/exceptions/email_cache_exceptions.dart';
|
||||
import 'package:tmail_ui_user/features/offline_mode/extensions/list_detailed_email_hive_cache_extension.dart';
|
||||
import 'package:tmail_ui_user/features/offline_mode/model/detailed_email_hive_cache.dart';
|
||||
|
||||
class OpenedEmailCacheManager {
|
||||
class OpenedEmailCacheManager extends CacheManagerInteraction {
|
||||
|
||||
final OpenedEmailHiveCacheClient _cacheClient;
|
||||
final FileUtils _fileUtils;
|
||||
@@ -85,4 +86,23 @@ class OpenedEmailCacheManager {
|
||||
Future<void> _deleteFileExisted(String pathFile) async {
|
||||
await _fileUtils.deleteFile(pathFile);
|
||||
}
|
||||
|
||||
Future<void> clear() => _cacheClient.clearAllData();
|
||||
|
||||
Future<void> deleteByKey(String key) =>
|
||||
_cacheClient.clearAllDataContainKey(key);
|
||||
|
||||
@override
|
||||
Future<void> migrateHiveToIsolatedHive() async {
|
||||
try {
|
||||
final legacyMapItems = await _cacheClient.getMapItems(
|
||||
isolated: false,
|
||||
);
|
||||
log('$runtimeType::migrateHiveToIsolatedHive(): Length of legacyMapItems: ${legacyMapItems.length}');
|
||||
await _cacheClient.insertMultipleItem(legacyMapItems);
|
||||
log('$runtimeType::migrateHiveToIsolatedHive(): ✅ Migrate Hive box "${_cacheClient.tableName}" → IsolatedHive DONE');
|
||||
} catch (e) {
|
||||
logError('$runtimeType::migrateHiveToIsolatedHive(): ❌ Migrate Hive box "${_cacheClient.tableName}" → IsolatedHive FAILED, Error: $e');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,16 @@
|
||||
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/user_name.dart';
|
||||
import 'package:model/extensions/account_id_extensions.dart';
|
||||
import 'package:tmail_ui_user/features/caching/clients/sending_email_hive_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/caching/interaction/cache_manager_interaction.dart';
|
||||
import 'package:tmail_ui_user/features/caching/utils/cache_utils.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/model/sending_email_hive_cache.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/data/exceptions/sending_queue_exceptions.dart';
|
||||
|
||||
class SendingEmailCacheManager {
|
||||
class SendingEmailCacheManager extends CacheManagerInteraction {
|
||||
|
||||
final SendingEmailHiveCacheClient _hiveCacheClient;
|
||||
|
||||
@@ -102,4 +104,18 @@ class SendingEmailCacheManager {
|
||||
}
|
||||
|
||||
Future<void> closeSendingEmailHiveCacheBox() => _hiveCacheClient.closeBox();
|
||||
|
||||
@override
|
||||
Future<void> migrateHiveToIsolatedHive() async {
|
||||
try {
|
||||
final legacyMapItems = await _hiveCacheClient.getMapItems(
|
||||
isolated: false,
|
||||
);
|
||||
log('$runtimeType::migrateHiveToIsolatedHive(): Length of legacyMapItems: ${legacyMapItems.length}');
|
||||
await _hiveCacheClient.insertMultipleItem(legacyMapItems);
|
||||
log('$runtimeType::migrateHiveToIsolatedHive(): ✅ Migrate Hive box "${_hiveCacheClient.tableName}" → IsolatedHive DONE');
|
||||
} catch (e) {
|
||||
logError('$runtimeType::migrateHiveToIsolatedHive(): ❌ Migrate Hive box "${_hiveCacheClient.tableName}" → IsolatedHive FAILED, Error: $e');
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user