TF-3589 Calendar event attendance status

This commit is contained in:
DatDang
2025-04-03 13:38:51 +07:00
committed by Dat H. Pham
parent 5c163e9676
commit ad05c68453
26 changed files with 208 additions and 471 deletions
@@ -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)