[ 
https://issues.apache.org/jira/browse/JAMES-2663?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16791238#comment-16791238
 ] 

Trần Tiến Đức commented on JAMES-2663:
--------------------------------------

Query model:
In case of the complex query:
{code:java}
{
   "combinator": "and"
   "criteria": [
   {
     "fieldName": "deliveryDate"
     "operator": "beforeOrEquals"
     "value": "2014-10-30T14:12:00Z"
     },
   {
     "fieldName": "recipients"
     "operator": "contains"
     "value": "mailaddr...@domain.tld"
   },
   {
     "fieldName": "hasAttachment"
     "operator": "equals"
     "value": "false"
   },
   {
     "fieldName": "originMailboxes"
     "operator": "contains"
     "value": "5436575687"
   }
 ]
}{code}
With a simple query contains only one criterion, it could be simplified as a 
single criterion, the complex way still can work


{code:java}
{
 "fieldName": "originMailboxes"
 "operator": "contains"
 "value": "5436575687"
}{code}

> [WebAdmin DMV Route] Restore API
> --------------------------------
>
>                 Key: JAMES-2663
>                 URL: https://issues.apache.org/jira/browse/JAMES-2663
>             Project: James Server
>          Issue Type: New Feature
>            Reporter: Trần Tiến Đức
>            Priority: Major
>
> ### Define `Query` object
> JSON List of criterion objects, logical AND between criteria.
> A criterion looks like this:
> {code:java}
> {
>  "field": 
>  "value":
>  "operator":
> }{code}
> Possible fields:
>  - deletionDate date formatted as string (Operation: Before + After)
>  - deliveryDate date formatted as string (Operation: Before + After)
>  - recipients list of string (Operator: Contains, ContainsIgnoreCase)
>  - sender string (Operator: Equals, EqualsIgnoreCase)
>  - hasAttachment boolean (Operator: Equals)
>  - originMailboxes list string (Operator Contains)
>  - subject string (Operator Equals, Contains + Ignore case)
> ## API proposal
> {code:java}
> POST /deletedMessages/users/:userId?action=restore
> [JSON Query body]
> - 201 Success
> {"taskId":"12e3"}
> - 404 if the user does not exist
> - 503 if `DeletedMessagesVault` is not avaiable
> {code}
> - Create `DeletedMessagesVaultRoutes` class in 
> `/server/protocols/webadmin-mailbox-deleted-messages-vault`
> - Search the `DeletedMessage` with `Flux<DeletedMessage> search(Query)` is 
> define in MAILBOX-381 then move it to `Restored Emails` mailbox. 
> - create unit-test to test this API: configuring webAdmin with 
> `DeletedMessagesVaultRoutes` on top of a memory mbx manager



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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