Hi all, I was investigating a way for a JMAP client to empty a folder (the usual "Empty Trash" scenario) and it turned out there's nothing in the spec allowing me to do this. The only possible solution would be to fetch Message IDs with a call to getMessageList and then destroy all these IDs with a call to setMessages. Is my understanding right or am I missing something?
If I'm right, Linagora would like to propose a simple but effective way to implement such "mass" actions on all messages in a given Mailbox: the setFilteredMessages API. This API will be very similar to setMessages but will apply update and/or destroy operations on messages matching a filter (the filter would behave exactly as the filter option of getMessageList: it will select messages matching the filter expression). Two examples below: - Empty a folder setMessages({ filter: { inMailboxes: ['<my-mailbox-id>'] }, destroy: true }) - Mark all messages from me as read setMessages({ filter: { from: 'ddo.linag...@gmail.com' }, update: { isUnread: false } }) Some restrictions would apply, mainly: - destroy MUST be a Boolean value. If True, matched messages are permanently destroyed. - update MUST be an object containing updated properties. Ther server MUST apply the modifications to the matched messages. What do you all think? Once we agree on the proposal, I can prepare a PR to the spec quickly. Thanks, Regards, David -- You received this message because you are subscribed to the Google Groups "JMAP" group. To unsubscribe from this group and stop receiving emails from it, send an email to jmap-discuss+unsubscr...@googlegroups.com. To post to this group, send email to jmap-discuss@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jmap-discuss/2720bfba-ea49-4739-baf4-681e0055f7ff%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.