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

Benoit Tellier updated JAMES-3376:
----------------------------------
        Parent: JAMES-2884
    Issue Type: Sub-task  (was: New Feature)

> Implement Email/query - unlock single request INBOX content loading
> -------------------------------------------------------------------
>
>                 Key: JAMES-3376
>                 URL: https://issues.apache.org/jira/browse/JAMES-3376
>             Project: James Server
>          Issue Type: Sub-task
>          Components: JMAP
>    Affects Versions: 3.6.0
>            Reporter: Benoit Tellier
>            Assignee: Antoine Duprat
>            Priority: Major
>             Fix For: 3.6.0
>
>
> # Why
> Email query allows retrieving the mailboxId of (among others) the INBOX. It 
> empowers a single request load for INBOX (woop)
> ## DOD
>  - Write an integretion test loading, for the connected user, without using 
> any provisioned id in the request, loads the 20 first mail previews in the 
> INBOX mailbox.
> (sentAt sorting, ascending, 30 last items)
> ## How
> Implement the email query method in order to resolve mailbox by role (`role` 
> filter condition). Any other role/filter should be ignored/
> Write integretaion tests for this method. Don't forget to document the 
> limitation.
> `sortAsTree` and `filterAsTree` should not be supported. 
> JsonPath resolution might also need in array resolution:
> ```
> {
>     "resultOf": "c1",
>     "name": "Mailbox/query",
>     "path": "list[0]"
> }
> ```
> ## Example
> Here is a single request example: 
> ```
> {
>   "using": [
>     "urn:ietf:params:jmap:core",
>     "urn:ietf:params:jmap:mail"],
>   "methodCalls": [[
>     "Mailbox/query",
>     {
>       "accountId": 
> "29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6",
>        "filter": {
>            "role": "Inbox"
>        }
>     },
>     "c1"]]
> }
> ```
> Would reply:
> ```
> {
>     "sessionState": "75128aab4b1b",
>     "methodResponses": [[
>             "Mailbox/query",
>             {
>                 "accountId": 
> "29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6",
>                 "queryState": "xyz",
>                 "canCalculateChanges": false,
>                 "position": 0,
>                 "limit": 256,
>                 "ids": ["zeifgzeyrgf"]
>             },
>             "c1"
>         ]]
> }
> ```
> Here is an example query for full account loading :
> ```
> {
>   "using": ["urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail"],
>   "methodCalls": [[
>             "Mailbox/query",
>             {
>                 "accountId": 
> "29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6",
>                 "filter": {
>                      "role": "Inbox"
>                  }
>             },
>             "c1"
>         ],[
>              "Email/query",
>              {
>                 "accountId": 
> "29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6"
>                  "filter" {
>                       "#inMailbox": {
>                            "resultOf":"c1",
>                            "name":"Mailbox/query",
>                            "path":"list[0]"
>                      }
>                  },
>                  "sort" {
>                      "property": "sentAt",
>                      "isAscending": true
>                  }
>              },
>            "c2"],[
>               "Email/get",
>              {
>                   "accountId": 
> "29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6",
>                   "properties": ["id", "preview"],
>                   "#ids": {
>                       "resultOf":"c2",
>                        "name":"Email/query",
>                        "path":"list/*"
>                    }
>               },
>             "c3"]
> ]
> }
> ```



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