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
  filter: {
    inMailboxes: ['<my-mailbox-id>']
  destroy: true

   - Mark all messages from me as read
  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.



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 
For more options, visit https://groups.google.com/d/optout.

Reply via email to