TF-3589 Calendar event attendance status
This commit is contained in:
@@ -22,7 +22,6 @@ import 'package:model/email/mark_star_action.dart';
|
||||
import 'package:model/email/read_actions.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/detailed_email.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/event_action.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/move_to_mailbox_request.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/preview_email_eml_request.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/restore_deleted_message_request.dart';
|
||||
@@ -173,12 +172,6 @@ abstract class EmailDataSource {
|
||||
|
||||
Future<EmailRecoveryAction> getRestoredDeletedMessage(EmailRecoveryActionId emailRecoveryActionId);
|
||||
|
||||
Future<void> storeEventAttendanceStatus(
|
||||
Session session,
|
||||
AccountId accountId,
|
||||
EmailId emailId,
|
||||
EventActionType eventActionType);
|
||||
|
||||
Future<void> markAsAnswered(
|
||||
Session session,
|
||||
AccountId accountId,
|
||||
|
||||
@@ -32,7 +32,6 @@ import 'package:tmail_ui_user/features/email/data/datasource/email_datasource.da
|
||||
import 'package:tmail_ui_user/features/email/data/local/html_analyzer.dart';
|
||||
import 'package:tmail_ui_user/features/email/data/network/email_api.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/detailed_email.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/event_action.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/move_to_mailbox_request.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/preview_email_eml_request.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/restore_deleted_message_request.dart';
|
||||
@@ -372,22 +371,6 @@ class EmailDataSourceImpl extends EmailDataSource {
|
||||
}).catchError(_exceptionThrower.throwException);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> storeEventAttendanceStatus(
|
||||
Session session,
|
||||
AccountId accountId,
|
||||
EmailId emailId,
|
||||
EventActionType eventActionType
|
||||
) {
|
||||
return Future.sync(() async {
|
||||
return await emailAPI.storeEventAttendanceStatus(
|
||||
session,
|
||||
accountId,
|
||||
emailId,
|
||||
eventActionType);
|
||||
}).catchError(_exceptionThrower.throwException);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> markAsAnswered(Session session, AccountId accountId, List<EmailId> emailIds) {
|
||||
throw UnimplementedError();
|
||||
|
||||
@@ -32,7 +32,6 @@ import 'package:tmail_ui_user/features/email/data/datasource/email_datasource.da
|
||||
import 'package:tmail_ui_user/features/email/domain/extensions/detailed_email_extension.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/extensions/detailed_email_hive_cache_extension.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/detailed_email.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/event_action.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/move_to_mailbox_request.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/preview_email_eml_request.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/restore_deleted_message_request.dart';
|
||||
@@ -475,11 +474,6 @@ class EmailHiveCacheDataSourceImpl extends EmailDataSource {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Email> storeEventAttendanceStatus(Session session, AccountId accountId, EmailId emailId, EventActionType eventActionType) {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> markAsAnswered(Session session, AccountId accountId, List<EmailId> emailIds) async {
|
||||
final cacheEmails = await _emailCacheManager.getMultipleStoredEmails(
|
||||
|
||||
@@ -36,7 +36,6 @@ import 'package:tmail_ui_user/features/caching/utils/local_storage_manager.dart'
|
||||
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
|
||||
import 'package:tmail_ui_user/features/email/data/datasource/email_datasource.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/detailed_email.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/event_action.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/move_to_mailbox_request.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/preview_email_eml_request.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/restore_deleted_message_request.dart';
|
||||
@@ -201,11 +200,6 @@ class EmailLocalStorageDataSourceImpl extends EmailDataSource {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> storeEventAttendanceStatus(Session session, AccountId accountId, EmailId emailId, EventActionType eventActionType) {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> storeOpenedEmail(Session session, AccountId accountId, DetailedEmail detailedEmail) {
|
||||
throw UnimplementedError();
|
||||
|
||||
@@ -26,7 +26,6 @@ import 'package:tmail_ui_user/features/caching/utils/session_storage_manager.dar
|
||||
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
|
||||
import 'package:tmail_ui_user/features/email/data/datasource/email_datasource.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/detailed_email.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/event_action.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/move_to_mailbox_request.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/preview_email_eml_request.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/restore_deleted_message_request.dart';
|
||||
@@ -181,11 +180,6 @@ class EmailSessionStorageDatasourceImpl extends EmailDataSource {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> storeEventAttendanceStatus(Session session, AccountId accountId, EmailId emailId, EventActionType eventActionType) {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> storeOpenedEmail(Session session, AccountId accountId, DetailedEmail detailedEmail) {
|
||||
throw UnimplementedError();
|
||||
|
||||
@@ -58,7 +58,10 @@ class CalendarEventAPI {
|
||||
(calendarEventAttendanceGetResponse?.list ?? []).map(
|
||||
(calendarEventAttendance) => MapEntry(
|
||||
calendarEventAttendance.blobId,
|
||||
calendarEventAttendance.isFree,
|
||||
(
|
||||
isFree: calendarEventAttendance.isFree,
|
||||
attendanceStatus: calendarEventAttendance.eventAttendanceStatus,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
@@ -67,7 +70,8 @@ class CalendarEventAPI {
|
||||
return calendarEventParseResponse!.parsed!.entries
|
||||
.map((entry) => BlobCalendarEvent(
|
||||
blobId: entry.key,
|
||||
isFree: calendarBlobIdStatusMap[entry.key] ?? true,
|
||||
isFree: calendarBlobIdStatusMap[entry.key]?.isFree ?? true,
|
||||
attendanceStatus: calendarBlobIdStatusMap[entry.key]?.attendanceStatus,
|
||||
calendarEventList: entry.value))
|
||||
.toList();
|
||||
} else if (calendarEventParseResponse?.notParsable?.isNotEmpty == true) {
|
||||
|
||||
@@ -63,8 +63,6 @@ import 'package:tmail_ui_user/features/base/mixin/handle_error_mixin.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/exceptions/set_method_exception.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/exceptions/email_exceptions.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/extensions/email_id_extensions.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/event_action.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/move_to_mailbox_request.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/restore_deleted_message_request.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/download_all_attachments_for_web_state.dart';
|
||||
@@ -949,43 +947,6 @@ class EmailAPI with HandleSetErrorMixin {
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> storeEventAttendanceStatus(
|
||||
Session session,
|
||||
AccountId accountId,
|
||||
EmailId emailId,
|
||||
EventActionType eventActionType
|
||||
) async {
|
||||
final setEmailMethod = SetEmailMethod(accountId)
|
||||
..addUpdates(emailId.generateMapUpdateObjectEventAttendanceStatus(eventActionType));
|
||||
|
||||
final requestBuilder = JmapRequestBuilder(_httpClient, ProcessingInvocation());
|
||||
|
||||
final setEmailInvocation = requestBuilder.invocation(setEmailMethod);
|
||||
|
||||
final capabilities = setEmailMethod.requiredCapabilities
|
||||
.toCapabilitiesSupportTeamMailboxes(session, accountId);
|
||||
|
||||
final response = await (requestBuilder
|
||||
..usings(capabilities))
|
||||
.build()
|
||||
.execute();
|
||||
|
||||
final setEmailResponse = response.parse<SetEmailResponse>(
|
||||
setEmailInvocation.methodCallId,
|
||||
SetEmailResponse.deserialize,
|
||||
);
|
||||
|
||||
final emailIdUpdated = setEmailResponse?.updated
|
||||
?.keys
|
||||
.map((id) => EmailId(id))
|
||||
.toList() ?? [];
|
||||
final mapErrors = handleSetResponse([setEmailResponse]);
|
||||
|
||||
if (emailIdUpdated.isEmpty) {
|
||||
throw SetMethodException(mapErrors);
|
||||
}
|
||||
}
|
||||
|
||||
Future<List<Email>> parseEmailByBlobIds(AccountId accountId, Set<Id> blobIds) async {
|
||||
final requestBuilder = JmapRequestBuilder(_httpClient, ProcessingInvocation());
|
||||
final parseEmailMethod = ParseEmailMethod(accountId, blobIds)
|
||||
|
||||
@@ -67,6 +67,7 @@ class CalendarEventRepositoryImpl extends CalendarEventRepository {
|
||||
return _transformCalendarEventDescription(calendarEvent, transformConfiguration);
|
||||
})),
|
||||
isFree: blobCalendarEvent.isFree,
|
||||
attendanceStatus: blobCalendarEvent.attendanceStatus,
|
||||
);
|
||||
}));
|
||||
}
|
||||
|
||||
@@ -30,7 +30,6 @@ import 'package:tmail_ui_user/features/email/data/datasource/html_datasource.dar
|
||||
import 'package:tmail_ui_user/features/email/data/datasource/print_file_datasource.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/detailed_email.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/email_print.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/event_action.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/move_to_mailbox_request.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/preview_email_eml_request.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/restore_deleted_message_request.dart';
|
||||
@@ -473,20 +472,6 @@ class EmailRepositoryImpl extends EmailRepository {
|
||||
return _printFileDataSource.printEmail(emailPrint);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> storeEventAttendanceStatus(
|
||||
Session session,
|
||||
AccountId accountId,
|
||||
EmailId emailId,
|
||||
EventActionType eventActionType
|
||||
) {
|
||||
return emailDataSource[DataSourceType.network]!.storeEventAttendanceStatus(
|
||||
session,
|
||||
accountId,
|
||||
emailId,
|
||||
eventActionType);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<Email>> parseEmailByBlobIds(AccountId accountId, Set<Id> blobIds) {
|
||||
return emailDataSource[DataSourceType.network]!.parseEmailByBlobIds(accountId, blobIds);
|
||||
|
||||
Reference in New Issue
Block a user