TF-3385 Add try-catch to cache method calls on user actions

This commit is contained in:
DatDang
2025-01-03 15:09:27 +07:00
committed by Dat H. Pham
parent 492f4f8350
commit 2e4b38fcb2
2 changed files with 105 additions and 64 deletions
@@ -6,6 +6,7 @@ import 'package:core/data/network/download/downloaded_response.dart';
import 'package:core/presentation/state/failure.dart'; import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart'; import 'package:core/presentation/state/success.dart';
import 'package:core/presentation/utils/html_transformer/transform_configuration.dart'; import 'package:core/presentation/utils/html_transformer/transform_configuration.dart';
import 'package:core/utils/app_logger.dart';
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
import 'package:dio/dio.dart'; import 'package:dio/dio.dart';
import 'package:email_recovery/email_recovery/email_recovery_action.dart'; import 'package:email_recovery/email_recovery/email_recovery_action.dart';
@@ -101,12 +102,16 @@ class EmailRepositoryImpl extends EmailRepository {
readActions, readActions,
); );
try {
await emailDataSource[DataSourceType.hiveCache]!.markAsRead( await emailDataSource[DataSourceType.hiveCache]!.markAsRead(
session, session,
accountId, accountId,
result.emailIdsSuccess, result.emailIdsSuccess,
readActions, readActions,
); );
} catch (e) {
logError('EmailRepositoryImpl::markAsRead:exception $e');
}
return result; return result;
} }
@@ -159,6 +164,7 @@ class EmailRepositoryImpl extends EmailRepository {
), ),
); );
try {
await emailDataSource[DataSourceType.hiveCache] await emailDataSource[DataSourceType.hiveCache]
!.moveToMailbox( !.moveToMailbox(
session, session,
@@ -171,6 +177,9 @@ class EmailRepositoryImpl extends EmailRepository {
destinationPath: moveRequest.destinationPath, destinationPath: moveRequest.destinationPath,
), ),
); );
} catch (e) {
logError('EmailRepositoryImpl::moveToMailbox:exception $e');
}
return result; return result;
} }
@@ -191,12 +200,16 @@ class EmailRepositoryImpl extends EmailRepository {
emailIds, emailIds,
markStarAction, markStarAction,
); );
try {
await emailDataSource[DataSourceType.hiveCache]!.markAsStar( await emailDataSource[DataSourceType.hiveCache]!.markAsStar(
session, session,
accountId, accountId,
result.emailIdsSuccess, result.emailIdsSuccess,
markStarAction markStarAction
); );
} catch (e) {
logError('EmailRepositoryImpl::markAsStar:exception $e');
}
return result; return result;
} }
@@ -230,12 +243,16 @@ class EmailRepositoryImpl extends EmailRepository {
email, email,
cancelToken: cancelToken cancelToken: cancelToken
); );
try {
await emailDataSource[DataSourceType.hiveCache]!.saveEmailAsDrafts( await emailDataSource[DataSourceType.hiveCache]!.saveEmailAsDrafts(
session, session,
accountId, accountId,
result, result,
cancelToken: cancelToken cancelToken: cancelToken
); );
} catch (e) {
logError('EmailRepositoryImpl::saveEmailAsDrafts:exception $e');
}
return result; return result;
} }
@@ -252,12 +269,16 @@ class EmailRepositoryImpl extends EmailRepository {
emailId, emailId,
cancelToken: cancelToken cancelToken: cancelToken
); );
try {
await emailDataSource[DataSourceType.hiveCache]!.removeEmailDrafts( await emailDataSource[DataSourceType.hiveCache]!.removeEmailDrafts(
session, session,
accountId, accountId,
emailId, emailId,
cancelToken: cancelToken cancelToken: cancelToken
); );
} catch (e) {
logError('EmailRepositoryImpl::removeEmailDrafts:exception $e');
}
return result; return result;
} }
@@ -276,12 +297,16 @@ class EmailRepositoryImpl extends EmailRepository {
oldEmailId, oldEmailId,
cancelToken: cancelToken cancelToken: cancelToken
); );
try {
await emailDataSource[DataSourceType.hiveCache]!.updateEmailDrafts( await emailDataSource[DataSourceType.hiveCache]!.updateEmailDrafts(
session, session,
accountId, accountId,
result, result,
oldEmailId, oldEmailId,
); );
} catch (e) {
logError('EmailRepositoryImpl::updateEmailDrafts:exception $e');
}
return result; return result;
} }
@@ -320,8 +345,12 @@ class EmailRepositoryImpl extends EmailRepository {
accountId, accountId,
emailIds, emailIds,
); );
try {
await emailDataSource[DataSourceType.hiveCache] await emailDataSource[DataSourceType.hiveCache]
!.deleteMultipleEmailsPermanently(session, accountId, result.emailIdsSuccess); !.deleteMultipleEmailsPermanently(session, accountId, result.emailIdsSuccess);
} catch (e) {
logError('EmailRepositoryImpl::deleteMultipleEmailsPermanently:exception $e');
}
return result; return result;
} }
@@ -339,11 +368,15 @@ class EmailRepositoryImpl extends EmailRepository {
emailId, emailId,
cancelToken: cancelToken cancelToken: cancelToken
); );
try {
await emailDataSource[DataSourceType.hiveCache]!.deleteEmailPermanently( await emailDataSource[DataSourceType.hiveCache]!.deleteEmailPermanently(
session, session,
accountId, accountId,
emailId, emailId,
); );
} catch (e) {
logError('EmailRepositoryImpl::deleteEmailPermanently:exception $e');
}
return result; return result;
} }
@@ -219,8 +219,12 @@ class MailboxRepositoryImpl extends MailboxRepository {
final result = await mapDataSource[DataSourceType.network] final result = await mapDataSource[DataSourceType.network]
!.renameMailbox(session, accountId, request); !.renameMailbox(session, accountId, request);
try {
await mapDataSource[DataSourceType.local] await mapDataSource[DataSourceType.local]
!.renameMailbox(session, accountId, request); !.renameMailbox(session, accountId, request);
} catch (e) {
logError('MailboxRepositoryImpl::renameMailbox: Exception: $e');
}
return result; return result;
} }
@@ -239,6 +243,7 @@ class MailboxRepositoryImpl extends MailboxRepository {
mailboxId, mailboxId,
totalEmailUnread, totalEmailUnread,
onProgressController); onProgressController);
try {
await mapDataSource[DataSourceType.local]!.markAsMailboxRead( await mapDataSource[DataSourceType.local]!.markAsMailboxRead(
session, session,
accountId, accountId,
@@ -252,6 +257,9 @@ class MailboxRepositoryImpl extends MailboxRepository {
result, result,
ReadActions.markAsRead, ReadActions.markAsRead,
); );
} catch (e) {
logError('MailboxRepositoryImpl::markAsMailboxRead: Exception: $e');
}
return result; return result;
} }