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

Lan Khuat updated JAMES-3464:
-----------------------------
    Description: 
>From spec: [https://jmap.io/spec-core.html#set] (section 5.3)
{code:java}
oldState: The state string that would have been returned by Foo/get before 
making the requested changes, or null if the server doesn’t know what the 
previous state string was.
newState: The state string that will now be returned by Foo/get.
{code}
h1. How


- When a Mailbox/set request is received, we need to fetch the current state of 
the Mailbox objects. This should be returned as `oldState` property in the 
response.
- After all the changes in the Mailbox/set request have been applied 
successfully, we should create a new state, store it in the 
MailboxChangeRepository and return it with the response as `newState` property. 
- If all the methodCalls in the request end up failing then no new state should 
be generated.

 
h1. DoD

Integration tests to show that the Mailbox/set method can return oldState & 
newState property.

  was:
>From spec: [https://jmap.io/spec-core.html#set] (section 5.3)
{code:java}
ifInState: This is a state string as returned by the Foo/get method 
(representing the state of all objects of this type in the account). If 
supplied, the string must match the current state; otherwise, the method will 
be aborted and a stateMismatch error returned. If null, any changes will be 
applied to the current state.
{code}
h1. How

When Email/set request is received, if the ifInState property is present we 
need to compare it with the current Mailbox state stored in 
MailboxChangeRepository.
 * if mismatched, a stateMismatch error should be returned.
 * if matched, all the changes in the request will be applied and should create 
a new state, unless all the methodCalls in the request end up failing.

If the ifInState property is omitted then all the changes will be applied to 
the current state.
h1. DoD

Integration tests to show that the Mailbox/set method can handle ifInState 
property.

        Summary: Mailbox/set should handle oldState & newState  (was: 
Mailbox/set should handle ifInState)

> Mailbox/set should handle oldState & newState
> ---------------------------------------------
>
>                 Key: JAMES-3464
>                 URL: https://issues.apache.org/jira/browse/JAMES-3464
>             Project: James Server
>          Issue Type: Sub-task
>            Reporter: Lan Khuat
>            Priority: Major
>
> From spec: [https://jmap.io/spec-core.html#set] (section 5.3)
> {code:java}
> oldState: The state string that would have been returned by Foo/get before 
> making the requested changes, or null if the server doesn’t know what the 
> previous state string was.
> newState: The state string that will now be returned by Foo/get.
> {code}
> h1. How
> - When a Mailbox/set request is received, we need to fetch the current state 
> of the Mailbox objects. This should be returned as `oldState` property in the 
> response.
> - After all the changes in the Mailbox/set request have been applied 
> successfully, we should create a new state, store it in the 
> MailboxChangeRepository and return it with the response as `newState` 
> property. 
> - If all the methodCalls in the request end up failing then no new state 
> should be generated.
>  
> h1. DoD
> Integration tests to show that the Mailbox/set method can return oldState & 
> newState property.



--
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