Trần Tiến Đức created MAILBOX-381:
-------------------------------------

             Summary: [DeletedMessagesVault] API (not retention) + Contract + 
impl on top of MailRepository
                 Key: MAILBOX-381
                 URL: https://issues.apache.org/jira/browse/MAILBOX-381
             Project: James Mailbox
          Issue Type: New Feature
            Reporter: Trần Tiến Đức


DeletedMessagesVault is where you store mails after being deleted in `Trash`. 
It allows to:
 - Store a `DeletedMessage` of an user
 - Delete a `DeletedMessage` stored before by the `MessageId`
 - Search a list of `DeletedMessage` by a `Query`

The proposal API:
{code:java}
interface DeletedMessagesVault {
     Mono<Void> append(User user, DeletedMessage deletedMessage);
     Mono<Void> delete(MessageId messageId);
     Flux<DeletedMessage> search(Query query);
 }{code}


 API will be placed in a new maven module 
`mailbox/plugin/deleted-messages-vault`

You will also need to define those POJOs
 - DeletedMessage: it wraps a MailboxMessage contents and deleted message 
metadata:
 - deletion date
 - delivery date
 - recipients
 - sender
 - has attachment
 - origin mailboxes
 - subject (contains, equals / ignore case)
 - Query: this POJO define various search criteria base on list of 
DeletedMessage metadata.

About DeletedMessagesVault impl

By leverage `MailRepository` component you will create your impl ontop of 
`MailRepository`. At the moment `MailRepository` only supports `store` and 
`remove`, so you have to:
 - Apply search feature in `MailRepository`
 - `DeletedMessagesVault` impl is intend to use `CassandraMailRepository`, 
`DeletedMessagesVault` is per-user, and each one points to a specify 
`MailRepositoryUrl` belong to a specific User.
 - Adapt DeletedMessagesVault impl with `MailRepository` APIs.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to