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 ad...@apache.org on 2017/01/26 16:08:51 UTC

[2/3] james-project git commit: James-1920 Make move to trash like move to any other mailbox

James-1920 Make move to trash like move to any other mailbox


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/52367e7d
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/52367e7d
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/52367e7d

Branch: refs/heads/master
Commit: 52367e7d5b58d9efc0f41f25c6b66bae7a3bd769
Parents: f2d4d61
Author: Luc DUZAN <ld...@linagora.com>
Authored: Tue Jan 24 17:27:57 2017 +0100
Committer: Luc DUZAN <ld...@linagora.com>
Committed: Thu Jan 26 11:11:02 2017 +0100

----------------------------------------------------------------------
 .../integration/SetMessagesMethodTest.java      |  9 +++++----
 .../methods/SetMessagesUpdateProcessor.java     | 21 ++------------------
 2 files changed, 7 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/52367e7d/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
index 671f299..d2c89e5 100644
--- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
@@ -2048,7 +2048,7 @@ public abstract class SetMessagesMethodTest {
     }
 
     @Test
-    public void moveToTrashIsNotYetSupported() throws Exception {
+    public void setMessagesShouldWorkForMoveToTrash() throws Exception {
         String trashId = jmapServer.serverProbe().getMailbox("#private", USERNAME, "trash").getMailboxId().serialize();
 
         ZonedDateTime dateTime = ZonedDateTime.parse("2014-10-30T14:12:00Z");
@@ -2074,10 +2074,11 @@ public abstract class SetMessagesMethodTest {
         .when()
             .post("/jmap")
         .then()
-            .log().ifValidationFails()
             .statusCode(200)
-            .body(NAME, equalTo("error"))
-            .body(ARGUMENTS + ".type", equalTo("Not yet implemented"));
+            .log().ifValidationFails()
+            .body(NAME, equalTo("messagesSet"))
+            .body(ARGUMENTS + ".updated[0]", equalTo(messageToMoveId))
+            .body(ARGUMENTS + ".updated", hasSize(1));
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/52367e7d/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesUpdateProcessor.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesUpdateProcessor.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesUpdateProcessor.java
index aaae397..c188d28 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesUpdateProcessor.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesUpdateProcessor.java
@@ -28,14 +28,11 @@ import java.util.stream.Stream;
 import javax.inject.Inject;
 import javax.mail.Flags;
 
-import org.apache.commons.lang.NotImplementedException;
-import org.apache.james.jmap.exceptions.MailboxRoleNotFoundException;
 import org.apache.james.jmap.model.MessageProperties;
 import org.apache.james.jmap.model.SetError;
 import org.apache.james.jmap.model.SetMessagesRequest;
 import org.apache.james.jmap.model.SetMessagesResponse;
 import org.apache.james.jmap.model.UpdateMessagePatch;
-import org.apache.james.jmap.model.mailbox.Role;
 import org.apache.james.jmap.utils.SystemMailboxesProvider;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
@@ -80,6 +77,7 @@ public class SetMessagesUpdateProcessor implements SetMessagesProcessor {
         this.systemMailboxesProvider = systemMailboxesProvider;
     }
 
+    @Override
     public SetMessagesResponse process(SetMessagesRequest request,  MailboxSession mailboxSession) {
         SetMessagesResponse.Builder responseBuilder = SetMessagesResponse.builder();
         request.buildUpdatePatches(updatePatchConverter).forEach( (id, patch) -> {
@@ -112,7 +110,7 @@ public class SetMessagesUpdateProcessor implements SetMessagesProcessor {
         } catch (MailboxException e) {
             handleMessageUpdateException(messageId, builder, e);
         }
-        
+
     }
 
     private Stream<MailboxException> updateFlags(MessageId messageId, UpdateMessagePatch updateMessagePatch, MailboxSession mailboxSession, MessageResult messageResult) {
@@ -133,25 +131,10 @@ public class SetMessagesUpdateProcessor implements SetMessagesProcessor {
                 .map(mailboxId -> mailboxIdFactory.fromString(mailboxId))
                 .collect(Guavate.toImmutableList());
 
-            if (isMoveToTrash(mailboxSession, mailboxIds)) {
-                throw new NotImplementedException("Do not support move to trash");
-            }
-
             messageIdManager.setInMailboxes(messageId, mailboxIds, mailboxSession);
         }
     }
 
-    private boolean isMoveToTrash(MailboxSession mailboxSession, List<MailboxId> mailboxIds) throws MailboxException {
-        try {
-            return mailboxIds.size() == 1
-                && mailboxIds.get(0)
-                    .equals(systemMailboxesProvider.findMailbox(Role.TRASH, mailboxSession).getId());
-        } catch (MailboxRoleNotFoundException e) {
-            LOGGER.debug("Unable to find Trash mailbox for user: " + mailboxSession.getUser().getUserName(), e);
-            return false;
-        }
-    }
-
     private void addMessageIdNotFoundToResponse(MessageId messageId, SetMessagesResponse.Builder builder) {
         builder.notUpdated(ImmutableMap.of(messageId,
                 SetError.builder()


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org