This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 748d7199b299e1dda56a7aa4c755d6560ba6f3e6
Author: Benoit Tellier <btell...@linagora.com>
AuthorDate: Tue Feb 19 15:20:50 2019 +0700

    JAMES-2661 Swagger doc for EventDeadLettersRoutes
---
 .../webadmin/routes/EventDeadLettersRoutes.java    | 87 ++++++++++++++++++++++
 1 file changed, 87 insertions(+)

diff --git 
a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/EventDeadLettersRoutes.java
 
b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/EventDeadLettersRoutes.java
index a694279..f4718fe 100644
--- 
a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/EventDeadLettersRoutes.java
+++ 
b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/EventDeadLettersRoutes.java
@@ -19,9 +19,14 @@
 
 package org.apache.james.webadmin.routes;
 
+import java.util.List;
 import java.util.UUID;
 
 import javax.inject.Inject;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
 
 import org.apache.james.event.json.EventSerializer;
 import org.apache.james.mailbox.events.Event;
@@ -34,10 +39,19 @@ import org.eclipse.jetty.http.HttpStatus;
 
 import com.github.steveash.guavate.Guavate;
 
+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 spark.Request;
 import spark.Response;
 import spark.Service;
 
+@Api(tags = "EventDeadLetter")
+@Path("/events/deadLetter")
+@Produces("application/json")
 public class EventDeadLettersRoutes implements Routes {
     private static final String BASE_PATH = "/events/deadLetter";
     private static final String GROUP_PARAM = ":group";
@@ -67,6 +81,13 @@ public class EventDeadLettersRoutes implements Routes {
         service.delete(BASE_PATH + "/groups/" + GROUP_PARAM + "/events/" + 
EVENT_ID_PARAM, this::deleteEvent);
     }
 
+    @GET
+    @Path("/groups")
+    @ApiOperation(value = "List groups")
+    @ApiResponses(value = {
+        @ApiResponse(code = HttpStatus.OK_200, message = "OK - list group 
names", response = List.class),
+        @ApiResponse(code = HttpStatus.INTERNAL_SERVER_ERROR_500, message = 
"Internal server error - Something went bad on the server side.")
+    })
     private Iterable<String> listGroups(Request request, Response response) {
         return deadLetters.groupsWithFailedEvents()
             .map(Group::asString)
@@ -74,6 +95,23 @@ public class EventDeadLettersRoutes implements Routes {
             .block();
     }
 
+    @GET
+    @Path("/groups/" + GROUP_PARAM + "/events")
+    @ApiOperation(value = "List failed events for a given group")
+    @ApiImplicitParams({
+        @ApiImplicitParam(
+            required = true,
+            name = "group",
+            paramType = "path parameter",
+            dataType = "String",
+            defaultValue = "none",
+            value = "Compulsory. Needs to be a valid group name")
+    })
+    @ApiResponses(value = {
+        @ApiResponse(code = HttpStatus.OK_200, message = "OK - list of failed 
eventIds for a given group", response = List.class),
+        @ApiResponse(code = HttpStatus.BAD_REQUEST_400, message = "Invalid 
group name"),
+        @ApiResponse(code = HttpStatus.INTERNAL_SERVER_ERROR_500, message = 
"Internal server error - Something went bad on the server side.")
+    })
     private Iterable<String> listFailedEvents(Request request, Response 
response) {
         Group group = parseGroup(request);
         return deadLetters.failedEventIds(group)
@@ -83,6 +121,31 @@ public class EventDeadLettersRoutes implements Routes {
             .block();
     }
 
+    @GET
+    @Path("/groups/" + GROUP_PARAM + "/events/" + EVENT_ID_PARAM)
+    @ApiOperation(value = "Returns an event detail")
+    @ApiImplicitParams({
+        @ApiImplicitParam(
+            required = true,
+            name = "group",
+            paramType = "path parameter",
+            dataType = "String",
+            defaultValue = "none",
+            value = "Compulsory. Needs to be a valid group name"),
+        @ApiImplicitParam(
+            required = true,
+            name = "eventId",
+            paramType = "path parameter",
+            dataType = "String",
+            defaultValue = "none",
+            value = "Compulsory. Needs to be a valid eventId")
+    })
+    @ApiResponses(value = {
+        @ApiResponse(code = HttpStatus.OK_200, message = "OK - returns an 
event detail", response = Event.class),
+        @ApiResponse(code = HttpStatus.BAD_REQUEST_400, message = "Invalid 
group name or event id"),
+        @ApiResponse(code = HttpStatus.NOT_FOUND_404, message = "No event with 
this eventId"),
+        @ApiResponse(code = HttpStatus.INTERNAL_SERVER_ERROR_500, message = 
"Internal server error - Something went bad on the server side.")
+    })
     private String getEventDetails(Request request, Response response) {
         Group group = parseGroup(request);
         Event.EventId eventId = parseEventId(request);
@@ -92,6 +155,30 @@ public class EventDeadLettersRoutes implements Routes {
             .block();
     }
 
+    @DELETE
+    @Path("/groups/" + GROUP_PARAM + "/events/" + EVENT_ID_PARAM)
+    @ApiOperation(value = "Deletes an event")
+    @ApiImplicitParams({
+        @ApiImplicitParam(
+            required = true,
+            name = "group",
+            paramType = "path parameter",
+            dataType = "String",
+            defaultValue = "none",
+            value = "Compulsory. Needs to be a valid group name"),
+        @ApiImplicitParam(
+            required = true,
+            name = "eventId",
+            paramType = "path parameter",
+            dataType = "String",
+            defaultValue = "none",
+            value = "Compulsory. Needs to be a valid eventId")
+    })
+    @ApiResponses(value = {
+        @ApiResponse(code = HttpStatus.NO_CONTENT_204, message = "OK - Event 
deleted"),
+        @ApiResponse(code = HttpStatus.BAD_REQUEST_400, message = "Invalid 
group name or event id"),
+        @ApiResponse(code = HttpStatus.INTERNAL_SERVER_ERROR_500, message = 
"Internal server error - Something went bad on the server side.")
+    })
     private Response deleteEvent(Request request, Response response) {
         Group group = parseGroup(request);
         Event.EventId eventId = parseEventId(request);


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

Reply via email to