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 bt...@apache.org on 2018/01/05 09:17:32 UTC
[06/15] james-project git commit: JAMES-2266 Swagger documentation
for fixing Ghost mailbox bug
JAMES-2266 Swagger documentation for fixing Ghost mailbox bug
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/75964201
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/75964201
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/75964201
Branch: refs/heads/master
Commit: 7596420184d3e057c30226641c3b1429d972565b
Parents: 800e88f
Author: benwa <bt...@linagora.com>
Authored: Wed Dec 27 17:25:05 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Jan 5 16:06:56 2018 +0700
----------------------------------------------------------------------
.../routes/CassandraMailboxMergingRoutes.java | 35 +++++++++++++++++++-
1 file changed, 34 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/75964201/server/protocols/webadmin/webadmin-cassandra/src/main/java/org/apache/james/webadmin/routes/CassandraMailboxMergingRoutes.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-cassandra/src/main/java/org/apache/james/webadmin/routes/CassandraMailboxMergingRoutes.java b/server/protocols/webadmin/webadmin-cassandra/src/main/java/org/apache/james/webadmin/routes/CassandraMailboxMergingRoutes.java
index b778ef6..9ac36a6 100644
--- a/server/protocols/webadmin/webadmin-cassandra/src/main/java/org/apache/james/webadmin/routes/CassandraMailboxMergingRoutes.java
+++ b/server/protocols/webadmin/webadmin-cassandra/src/main/java/org/apache/james/webadmin/routes/CassandraMailboxMergingRoutes.java
@@ -20,6 +20,9 @@
package org.apache.james.webadmin.routes;
import javax.inject.Inject;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
import org.apache.james.mailbox.cassandra.ids.CassandraId;
import org.apache.james.mailbox.cassandra.mail.task.MailboxMergingTask;
@@ -38,10 +41,20 @@ import org.eclipse.jetty.http.HttpStatus;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import io.swagger.annotations.ResponseHeader;
import spark.Request;
import spark.Response;
import spark.Service;
+@Api(tags = "Mailbox merging route for fixing Ghost mailbox bug described in MAILBOX-322")
+@Path(":cassandra/mailbox/merging")
+@Produces("application/json")
public class CassandraMailboxMergingRoutes implements Routes {
private static final Logger LOGGER = LoggerFactory.getLogger(CassandraMailboxMergingRoutes.class);
@@ -68,7 +81,27 @@ public class CassandraMailboxMergingRoutes implements Routes {
service.post(BASE, this::mergeMailboxes, jsonTransformer);
}
- private Object mergeMailboxes(Request request, Response response) {
+
+ @POST
+ @ApiOperation("Triggers the merge of 2 mailboxes. Old mailbox Id will no more be accessible, rights and messages will be merged.")
+ @ApiImplicitParams(
+ {
+ @ApiImplicitParam(
+ required = true,
+ paramType = "body",
+ dataType = "Mailbox merging request",
+ example = "{\"oldMailboxId\":\"4555-656-4554\",\"oldMailboxId\":\"9693-665-2500\"}",
+ value = "The mailboxes to merge together.")
+ })
+ @ApiResponses(
+ {
+ @ApiResponse(code = HttpStatus.CREATED_201, message = "The taskId of the given scheduled task",
+ response = TaskIdDto.class, responseHeaders = {
+ @ResponseHeader(name = "Location", description = "URL of the resource associated with the scheduled task")
+ }),
+ @ApiResponse(code = HttpStatus.BAD_REQUEST_400, message = "Error with supplied data (JSON parsing or invalid mailbox ids)")
+ })
+ public Object mergeMailboxes(Request request, Response response) {
try {
LOGGER.debug("Cassandra upgrade launched");
MailboxMergingRequest mailboxMergingRequest = jsonExtractor.parse(request.body());
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org