[ 
https://issues.apache.org/jira/browse/JAMES-3472?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Lan Khuat updated JAMES-3472:
-----------------------------
    Description: 
>From the spec: [https://jmap.io/spec-core.html#changes]
{code:java}
The Foo/changes method allows a client to efficiently update the state of its 
Foo cache to match the new state on the server. {code}
h1. How

Serializer to deserialize/serialize Email/changes request/response has already 
been written with Mailbox/changes implementation. We now only need to implement 
Email/changes method + tests.
h1. Example

*Request*
{code:java}
[[ "Email/changes", {
 "accountId": 
"29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6",
 "sinceState": "000001"
}, "t0" ]]
{code}
 

*Response*
{code:java}
[[ "Email/changes", {
 "accountId": 
"29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6",
 "oldState": "000001",
 "newState": "000002",
 "hasMoreChanges": false,
 "created": [ "1", "2" ],
 "updated": [],
 "destroyed": []
}, "t0" ]]
{code}
h1. DoD

Write integration tests to show that we can retrieve the changes to email(s) 
from a particular state.

  was:
>From the spec: [https://jmap.io/spec-core.html#changes]
{code:java}
The Foo/changes method allows a client to efficiently update the state of its 
Foo cache to match the new state on the server. {code}
h1. How

Serializer to deserialize/serialize Email/changes request/response has already 
been written with Mailbox/changes implementation. We now only need to implement 
Email/changes method + tests.
h1. Example

**Request**
{code:java}
[[ "Email/changes", {
 "accountId": 
"29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6",
 "sinceState": "000001"
}, "t0" ]]
{code}
 

**Response**
{code:java}
[[ "Email/changes", {
 "accountId": 
"29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6",
 "oldState": "000001",
 "newState": "000002",
 "hasMoreChanges": false,
 "created": [ "1", "2" ],
 "updated": [],
 "destroyed": []
}, "t0" ]]
{code}
h1. DoD

Write integration tests to show that we can retrieve the changes to email(s) 
from a particular state.


> Implement Email/changes method and related contract tests
> ---------------------------------------------------------
>
>                 Key: JAMES-3472
>                 URL: https://issues.apache.org/jira/browse/JAMES-3472
>             Project: James Server
>          Issue Type: Sub-task
>            Reporter: Lan Khuat
>            Priority: Major
>
> From the spec: [https://jmap.io/spec-core.html#changes]
> {code:java}
> The Foo/changes method allows a client to efficiently update the state of its 
> Foo cache to match the new state on the server. {code}
> h1. How
> Serializer to deserialize/serialize Email/changes request/response has 
> already been written with Mailbox/changes implementation. We now only need to 
> implement Email/changes method + tests.
> h1. Example
> *Request*
> {code:java}
> [[ "Email/changes", {
>  "accountId": 
> "29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6",
>  "sinceState": "000001"
> }, "t0" ]]
> {code}
>  
> *Response*
> {code:java}
> [[ "Email/changes", {
>  "accountId": 
> "29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6",
>  "oldState": "000001",
>  "newState": "000002",
>  "hasMoreChanges": false,
>  "created": [ "1", "2" ],
>  "updated": [],
>  "destroyed": []
> }, "t0" ]]
> {code}
> h1. DoD
> Write integration tests to show that we can retrieve the changes to email(s) 
> from a particular state.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to