TF-2858 Implement update event attendance status keywords property in email api
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
import 'package:jmap_dart_client/jmap/core/id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/patch_object.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/event_action.dart';
|
||||
|
||||
extension EmailIdExtension on EmailId {
|
||||
Map<Id, PatchObject> generateMapUpdateObjectEventAttendanceStatus(EventActionType eventActionType) {
|
||||
return {
|
||||
id: eventActionType.generateEventAttendanceStatusActionPath()
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/patch_object.dart';
|
||||
import 'package:model/extensions/keyword_identifier_extension.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
|
||||
enum EventActionType {
|
||||
@@ -18,6 +20,40 @@ enum EventActionType {
|
||||
return AppLocalizations.of(context).no;
|
||||
}
|
||||
}
|
||||
|
||||
PatchObject generateEventAttendanceStatusActionPath() {
|
||||
switch(this) {
|
||||
case EventActionType.yes:
|
||||
return PatchObject({
|
||||
KeyWordIdentifierExtension.acceptedEventAttendance.generatePath(): true,
|
||||
KeyWordIdentifierExtension.tentativelyAcceptedEventAttendance.generatePath(): null,
|
||||
KeyWordIdentifierExtension.rejectedEventAttendance.generatePath(): null,
|
||||
});
|
||||
case EventActionType.maybe:
|
||||
return PatchObject({
|
||||
KeyWordIdentifierExtension.acceptedEventAttendance.generatePath(): null,
|
||||
KeyWordIdentifierExtension.tentativelyAcceptedEventAttendance.generatePath(): true,
|
||||
KeyWordIdentifierExtension.rejectedEventAttendance.generatePath(): null,
|
||||
});
|
||||
case EventActionType.no:
|
||||
return PatchObject({
|
||||
KeyWordIdentifierExtension.acceptedEventAttendance.generatePath(): null,
|
||||
KeyWordIdentifierExtension.tentativelyAcceptedEventAttendance.generatePath(): null,
|
||||
KeyWordIdentifierExtension.rejectedEventAttendance.generatePath(): true,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
String getToastMessageSuccess(BuildContext context) {
|
||||
switch(this) {
|
||||
case EventActionType.yes:
|
||||
return AppLocalizations.of(context).youWillAttendThisMeeting;
|
||||
case EventActionType.maybe:
|
||||
return AppLocalizations.of(context).youMayAttendThisMeeting;
|
||||
case EventActionType.no:
|
||||
return AppLocalizations.of(context).youWillNotAttendThisMeeting;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class EventAction with EquatableMixin {
|
||||
|
||||
Reference in New Issue
Block a user