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 "Benoit Tellier (Jira)" <se...@james.apache.org> on 2020/08/14 09:09:00 UTC

[jira] [Closed] (JAMES-3357) Mailbox/set creation: simple implementation

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

Benoit Tellier closed JAMES-3357.
---------------------------------
    Resolution: Fixed

https://github.com/linagora/james-project/pull/3640 contributed this

> Mailbox/set creation: simple implementation
> -------------------------------------------
>
>                 Key: JAMES-3357
>                 URL: https://issues.apache.org/jira/browse/JAMES-3357
>             Project: James Server
>          Issue Type: New Feature
>            Reporter: René Cordier
>            Priority: Major
>             Fix For: 3.6.0
>
>
> This is a first simple implementation of the creation part of Mailbox/set. It should follow the JMAP core specification section /set https://jmap.io/spec-core.html#set
> *Request*
> {code:json}
> {
>    "using": [ "urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail" ],
>    "methodCalls": [
>        [
>            "Mailbox/set", 
>            {
>                 "accountId": "JMAP-ID",
>                 "ifInState": null,
>                 "create": {
>                     "TEMP-MAILBOX-ID": {
>                         "name": "mailbox_name",
>                         "namespace": "Personal"
>                     }
>                 }
>            }
>        ]
>    ]
> }
> {code}
> For now, this should be enough. Few notes:
> * ifInState is a State and is not managed at the moment, so it should be null
> * the Roles will be the ones we already have defined in james, knowing we probably miss others at the moment (see #1750)
> * parentId will be handled in #1737
> * isSubscribed will be handled in #1739
> * sortOrder is not handled yet, we attribute default values depending of the role (see #1749 )
> * other missing fields are server-set
> * namespace is not part of the specs
> * rights are handled in #1759
> * for now we can consider role and sortOrder server-set, regarding our current implementation
> *Response*
> {code:json}
> {
>    "methodResponses": [
>        [
>            "Mailbox/set", 
>            {
>                 "accountId": "JMAP-ID", // the requested accountId
>                 "oldState": null,
>                 "newState": null,
>                 "created": {
>                     "TEMP-MAILBOX-ID": {
>                         "id": "0001",
>                         "sortOrder": 10,
>                         "role": "Inbox",
>                         "totalEmails": 0,
>                         "unreadEmails": 0,
>                         "totalThreads": 0,
>                         "unreadThreads": 0,
>                         "myRights": {
>                             "mayReadItems":false,
>                             "mayAddItems":true,
>                             "mayRemoveItems":false,
>                             "maySetSeen":true,
>                             "maySetKeywords":false,
>                             "mayCreateChild":true,
>                             "mayRename":true,
>                             "mayDelete":false,
>                             "maySubmit":false
>                         },
>                         "quotas":{
>                            "quotaRoot":{
>                                "Message":{"used":18,"max":42},
>                                "Storage":{"used":12}
>                             }
>                         }
>                     }
>                 }
>            }
>        ]
>    ], 
>    "sessionState": "abc"
> }
> {code}
> Notes:
> * notCreated will be handled in #1736
>  * the core specs say that the response should return in created a map of Ids to their Mailbox object with the real id, including any properties not sent by the client (default values ommited by client and server-set values)
>  * oldState and newState should be null for now, as we don't manage it atm
> *DoD* : POJO and serialization of the request and response Mailbox/set for creation + unit and integration tests



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