TF-239 Delete single email permanently

This commit is contained in:
dab246
2022-04-05 11:45:50 +07:00
committed by Dat H. Pham
parent 6445e3076f
commit a89c5db744
15 changed files with 171 additions and 20 deletions
+20 -1
View File
@@ -386,7 +386,7 @@ class EmailAPI {
});
}
Future<List<EmailId>> deleteMultipleEmailPermanently(Session session, AccountId accountId, List<EmailId> emailIds) async {
Future<List<EmailId>> deleteMultipleEmailsPermanently(Session session, AccountId accountId, List<EmailId> emailIds) async {
requireCapability(session, [CapabilityIdentifier.jmapCore, CapabilityIdentifier.jmapMail]);
final coreCapability = (session.capabilities[CapabilityIdentifier.jmapCore] as CoreCapability);
@@ -430,4 +430,23 @@ class EmailAPI {
return listEmailResult;
}
Future<bool> deleteEmailPermanently(AccountId accountId, EmailId emailId) async {
final requestBuilder = JmapRequestBuilder(_httpClient, ProcessingInvocation());
final setEmailMethod = SetEmailMethod(accountId)
..addDestroy(Set.of([emailId.id]));
final setEmailInvocation = requestBuilder.invocation(setEmailMethod);
final response = await (requestBuilder
..usings(setEmailMethod.requiredCapabilities))
.build()
.execute();
final setEmailResponse = response.parse<SetEmailResponse>(
setEmailInvocation.methodCallId,
SetEmailResponse.deserialize);
return setEmailResponse?.destroyed?.contains(emailId.id) == true;
}
}