TF-234 Implement delete a mailbox

This commit is contained in:
dab246
2022-02-24 18:55:15 +07:00
committed by Dat H. Pham
parent a19f3841d3
commit 79a7b45142
24 changed files with 495 additions and 25 deletions
@@ -128,4 +128,29 @@ class MailboxAPI {
throw error;
});
}
Future<bool> deleteMultipleMailbox(AccountId accountId, List<MailboxId> mailboxIds) async {
final setMailboxMethod = SetMailboxMethod(accountId)
..addDestroy(mailboxIds.map((mailboxId) => mailboxId.id).toSet())
..addOnDestroyRemoveEmails(true);
final requestBuilder = JmapRequestBuilder(httpClient, ProcessingInvocation());
final setMailboxInvocation = requestBuilder.invocation(setMailboxMethod);
final response = await (requestBuilder
..usings(setMailboxMethod.requiredCapabilities))
.build()
.execute();
final setMailboxResponse = response.parse<SetMailboxResponse>(
setMailboxInvocation.methodCallId,
SetMailboxResponse.deserialize);
return Future.sync(() async {
return setMailboxResponse?.destroyed?.isNotEmpty == true;
}).catchError((error) {
throw error;
});
}
}