TF-1718 Add unsubscribeMail method to datasource/repository/interactor on jmap server

Signed-off-by: dab246 <tdvu@linagora.com>
(cherry picked from commit f9159b651866fbe8e2a1866231b5413cecc5b597)
This commit is contained in:
dab246
2023-11-16 12:40:12 +07:00
committed by Dat Vu
parent 41eb95257d
commit 4d8c7dc52e
10 changed files with 124 additions and 2 deletions
@@ -1,5 +1,14 @@
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:model/extensions/keyword_identifier_extension.dart';
extension EmailIdExtension on EmailId {
String get asString => id.value;
Map<Id, PatchObject> generateMapUpdateObjectUnsubscribeMail() {
return {
id: KeyWordIdentifierExtension.unsubscribeMail.generateUnsubscribeActionPath()
};
}
}
@@ -4,6 +4,8 @@ import 'package:model/email/mark_star_action.dart';
import 'package:model/email/read_actions.dart';
extension KeyWordIdentifierExtension on KeyWordIdentifier {
static final unsubscribeMail = KeyWordIdentifier('\$unsubscribe');
String generatePath() {
return '${PatchObject.keywordsProperty}/$value';
}
@@ -31,4 +33,10 @@ extension KeyWordIdentifierExtension on KeyWordIdentifier {
generatePath(): true
});
}
PatchObject generateUnsubscribeActionPath() {
return PatchObject({
generatePath(): true
});
}
}