You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by "Lan Khuat (Jira)" <se...@james.apache.org> on 2020/12/10 09:30:00 UTC

[jira] [Updated] (JAMES-3472) Implement Email/changes method and related contract tests

     [ 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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org