[ 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