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 "Lan Khuat (Jira)" <se...@james.apache.org> on 2020/08/17 04:20:00 UTC

[jira] [Updated] (JAMES-3358) Mailbox/set delete: onDestroyRemoveEmails argument implementation

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

Lan Khuat updated JAMES-3358:
-----------------------------
    Description: 
Property:  {{onDestroyRemoveEmails: Boolean}}

Determine whether the emails in a mailbox should be removed/destroyed when that mailbox got destroyed.
 * SHOULD default to {{false}}
 * If {{false}}, any attempt to destroy a Mailbox that still has Emails in it will be rejected with a \{{mailboxHasEmail}}SetError.
 * If {{true}}, any Emails that were in the Mailbox will be removed from it, and if in no other Mailboxes, they will be destroyed when the Mailbox is destroyed.

*Request*
  {{```}}
 {{

{ "using": [ "urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail" ], "methodCalls": [ [ "Mailbox/set", \\{ "accountId": "JMAP-ID", "ifInState": "123", "create": null, "destroy": [ "0001" ], "onDestroyRemoveEmails": true }

]
 ]
 }}} 
 ```

*Response*

```
  {{

{ "methodResponses": [ [ "Mailbox/set", \\{ "accountId": "JMAP-ID", // the requested accountId "oldState": "123", "newState": "124", "created": null, "destroyed": [ "0001" ] }

]
 ], 
 "sessionState": "abc"
 }}} 
 ```
  

*DOD:*
 Integration tests + proof of email deletion when the property is

{{true}}

Proof of reject of the request if the property is

{{false}}

(with emails still present in the mailbox)

  was:
Property:  {{onDestroyRemoveEmails: Boolean}}

Determine whether the emails in a mailbox should be removed/destroyed when that mailbox got destroyed.
 * SHOULD default to {{false}}
 * If {{false}}, any attempt to destroy a Mailbox that still has Emails in it will be rejected with a {{mailboxHasEmail}}SetError.
 * If {{true}}, any Emails that were in the Mailbox will be removed from it, and if in no other Mailboxes, they will be destroyed when the Mailbox is destroyed.

*Request*
 {{```}}
{{{
   "using": [ "urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail" ],
   "methodCalls": [
       [
           "Mailbox/set", 
           \{
                "accountId": "JMAP-ID",
                "ifInState": "123",
                "create": null,
                "destroy": [ "0001" ],
                "onDestroyRemoveEmails": true
           }
       ]
   ]
}}} 
```

*Response*

```
 {{{
   "methodResponses": [
       [
           "Mailbox/set", 
           \{
                "accountId": "JMAP-ID", // the requested accountId
                "oldState": "123",
                "newState": "124",
                "created": null,
                "destroyed": [ "0001" ]
           }
       ]
   ], 
   "sessionState": "abc"
}}} 
```
 

*DOD:*
 Integration tests + proof of email deletion when the property is

{{}}

{{true}}

{{}}
 Proof of reject of the request if the property is

{{false}}

(with emails still present in the mailbox)


> Mailbox/set delete: onDestroyRemoveEmails argument implementation
> -----------------------------------------------------------------
>
>                 Key: JAMES-3358
>                 URL: https://issues.apache.org/jira/browse/JAMES-3358
>             Project: James Server
>          Issue Type: Improvement
>            Reporter: Lan Khuat
>            Priority: Major
>
> Property:  {{onDestroyRemoveEmails: Boolean}}
> Determine whether the emails in a mailbox should be removed/destroyed when that mailbox got destroyed.
>  * SHOULD default to {{false}}
>  * If {{false}}, any attempt to destroy a Mailbox that still has Emails in it will be rejected with a \{{mailboxHasEmail}}SetError.
>  * If {{true}}, any Emails that were in the Mailbox will be removed from it, and if in no other Mailboxes, they will be destroyed when the Mailbox is destroyed.
> *Request*
>   {{```}}
>  {{
> { "using": [ "urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail" ], "methodCalls": [ [ "Mailbox/set", \\{ "accountId": "JMAP-ID", "ifInState": "123", "create": null, "destroy": [ "0001" ], "onDestroyRemoveEmails": true }
> ]
>  ]
>  }}} 
>  ```
> *Response*
> ```
>   {{
> { "methodResponses": [ [ "Mailbox/set", \\{ "accountId": "JMAP-ID", // the requested accountId "oldState": "123", "newState": "124", "created": null, "destroyed": [ "0001" ] }
> ]
>  ], 
>  "sessionState": "abc"
>  }}} 
>  ```
>   
> *DOD:*
>  Integration tests + proof of email deletion when the property is
> {{true}}
> Proof of reject of the request if the property is
> {{false}}
> (with emails still present in the mailbox)



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