René Cordier created JAMES-3357:
-----------------------------------
Summary: 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
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: [email protected]
For additional commands, e-mail: [email protected]