TF-4195 Add interactor/repository/datasource to feature add a Label to an email

This commit is contained in:
dab246
2025-12-12 01:32:51 +07:00
committed by Dat H. Pham
parent b6027e996d
commit 0d247b30d7
19 changed files with 215 additions and 49 deletions
@@ -7,37 +7,28 @@ extension KeyWordIdentifierExtension on KeyWordIdentifier {
static final unsubscribeMail = KeyWordIdentifier('\$unsubscribe');
static final needsActionMail = KeyWordIdentifier('\$needs-action');
String generatePath() {
return '${PatchObject.keywordsProperty}/$value';
String generatePath() => '${PatchObject.keywordsProperty}/$value';
/// General helper to generate a boolean patch.
PatchObject _boolPatch(bool? flag) {
return PatchObject({generatePath(): flag});
}
PatchObject generateReadActionPath(ReadActions readActions) {
return PatchObject({
generatePath(): readActions == ReadActions.markAsRead ? true : null
});
PatchObject generateReadActionPath(ReadActions action) {
final isRead = action == ReadActions.markAsRead;
return _boolPatch(isRead ? true : null);
}
PatchObject generateMarkStarActionPath(MarkStarAction markStarAction) {
return PatchObject({
generatePath(): markStarAction == MarkStarAction.markStar ? true : null
});
PatchObject generateMarkStarActionPath(MarkStarAction action) {
final isStar = action == MarkStarAction.markStar;
return _boolPatch(isStar ? true : null);
}
PatchObject generateAnsweredActionPath() {
return PatchObject({
generatePath(): true
});
}
PatchObject generateAnsweredActionPath() => _boolPatch(true);
PatchObject generateForwardedActionPath() {
return PatchObject({
generatePath(): true
});
}
PatchObject generateForwardedActionPath() => _boolPatch(true);
PatchObject generateUnsubscribeActionPath() {
return PatchObject({
generatePath(): true
});
}
}
PatchObject generateUnsubscribeActionPath() => _boolPatch(true);
PatchObject generateLabelActionPath() => _boolPatch(true);
}