Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

draft-ietf-jmap-mail: separately report created messages versa changed ones? #78

Closed
aamelnikov opened this issue May 1, 2017 · 1 comment

Comments

@aamelnikov
Copy link

5.2. getMessageUpdates

o changed: "String[]" An array of message ids for messages that
have either been created or had their state change, and are not
currently deleted.

Why not two separate lists for creations and updates? I think you report them separately for other types of objects.

o removed: "String[]" An array of message ids for messages that
have been deleted since the oldState.

@neilj
Copy link
Member

neilj commented Sep 11, 2017

It's not different for different objects; I think you're looking at updates to lists (queries) vs updates to types.

For getFooListUpdates, we need to return what has been added to the query (and their index) and what has been removed.

For getFooUpdates, we return the ids of objects that have been created/updated (as the changed response), and those that have been destroyed. The removed is separate because the client can just purge these from the cache. The created/updated are merged because this is easier for the server (less book keeping required) and shouldn't matter to the client: if you have the object already it was clearly an update, and you need to refresh any mutable properties. If you don't have the object, it doesn't matter if it's new or modified – if you want a complete offline cache you need to fetch it (and its probably new if you were previously synced) and if you are doing a partial cache you will probably ignore it – you only fetch if it appears in one of the queries you're interested in.

@neilj neilj closed this as completed Sep 11, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants