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

Benoit Tellier updated JAMES-3356:
----------------------------------
        Parent: JAMES-2884
    Issue Type: Sub-task  (was: Improvement)

> Mailbox/set: reusing creationId
> -------------------------------
>
>                 Key: JAMES-3356
>                 URL: https://issues.apache.org/jira/browse/JAMES-3356
>             Project: James Server
>          Issue Type: Sub-task
>          Components: JMAP
>            Reporter: Benoit Tellier
>            Assignee: Antoine Duprat
>            Priority: Major
>
> https://jmap.io/spec-core.html#set
> ```
> Some records may hold references to other records (foreign keys). That 
> reference may be set (via create or update) in the same request as the 
> referenced record is created. To do this, the client refers to the new record 
> using its creation id prefixed with a #. The order of the method calls in the 
> request by the client MUST be such that the record being referenced is 
> created in the same or an earlier call. Thus, the server never has to look 
> ahead. Instead, while processing a request, the server MUST keep a simple map 
> for the duration of the request of creation id to record id for each newly 
> created record, so it can substitute in the correct value if necessary in 
> later method calls. In the case of records with references to the same type, 
> the server MUST order the creates and updates within a single method call so 
> that creates happen before their creation ids are referenced by another 
> create/update/destroy in the same call.
> ```
> Definition of done: write a memory integration test creating then updating a 
> given record, in the same method call.
> EG :
> ```
> {
>         |   "using": [ "urn:ietf:params:jmap:core", 
> "urn:ietf:params:jmap:mail" ],
>         |   "methodCalls": [
>         |       [
>         |           "Mailbox/set",
>         |           {
>         |                "accountId": 
> "29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6",
>         |                "create": {
>         |                    "C42": {
>         |                      "name": "mailbox",
>         |                    }
>         |                },
>         |                "destroy": ["#C42"]
>         |           },
>         |    "c1"
>         |       ]
>         |   ]
>         |}
> ```
> Note that this is different from backreference



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

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to