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