From d92d43e63e817f44b85d459767655638340ac284 Mon Sep 17 00:00:00 2001 From: Maximilian Leopold Date: Thu, 2 May 2019 20:31:13 +0200 Subject: [PATCH] More Swagger Doku --- .../hhn/labsw/bugageocaching/Application.java | 2 +- .../bugageocaching/controller/Controller.java | 83 ++++++++++++++++--- 2 files changed, 73 insertions(+), 12 deletions(-) diff --git a/src/main/java/hhn/labsw/bugageocaching/Application.java b/src/main/java/hhn/labsw/bugageocaching/Application.java index 3fb3f66..f835849 100644 --- a/src/main/java/hhn/labsw/bugageocaching/Application.java +++ b/src/main/java/hhn/labsw/bugageocaching/Application.java @@ -28,7 +28,7 @@ public class Application extends SpringBootServletInitializer{ @Bean public Docket swagger(){ - return new Docket(DocumentationType.SWAGGER_2) + return new Docket(DocumentationType.SWAGGER_2).useDefaultResponseMessages(false) .select() .apis(RequestHandlerSelectors.any()) .paths(PathSelectors.any()) diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index af8bdb1..5cbb663 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -8,7 +8,10 @@ import hhn.labsw.bugageocaching.repositories.*; import hhn.labsw.bugageocaching.util.FinderUtil; import hhn.labsw.bugageocaching.util.VerificationUtil; import io.jsonwebtoken.Claims; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiResponse; +import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -68,6 +71,11 @@ public class Controller { @ApiOperation(value = "Starts the given Cache for the given User") @CrossOrigin(origins = "*", allowedHeaders = "*") // only for dev purpose + @ApiResponses(value = { + @ApiResponse(code = 404, message = "Database error"), + @ApiResponse(code = 401, message = "JWT Token expired"), + @ApiResponse(code = 400, message = "Something went wrong at verification") + }) @RequestMapping(value = "/api/startCache", method = RequestMethod.POST, produces = "application/json") @ResponseBody public ResponseEntity startCache(@RequestParam(value = "token", defaultValue = "-1") String token, @@ -149,8 +157,15 @@ public class Controller { } } + @ApiOperation(value = "Checks if the given Station is the correct next Station in the Cache") + @ApiResponses(value = { + @ApiResponse(code = 404, message = "Database error"), + @ApiResponse(code = 400, message = "Given Station is NOT the correct following station"), + @ApiResponse(code = 401, message = "JWT Token expired"), + @ApiResponse(code = 400, message = "Something went wrong at verification") + }) @CrossOrigin(origins = "*", allowedHeaders = "*") // only for dev purpose - @RequestMapping("/api/checkStation") + @RequestMapping(value = "/api/checkStation", method = RequestMethod.PUT, produces = "application/json") @ResponseBody public ResponseEntity checkStation(@RequestParam String token, @RequestParam String cacheID, @@ -297,15 +312,26 @@ public class Controller { } + @ApiOperation(value = "Creates a new Cache") + @ApiResponses(value = { + @ApiResponse(code = 400, message = "Something wrong with the given Parameters") + }) @CrossOrigin(origins = "*", allowedHeaders = "*") // only for dev purpose - @RequestMapping("/api/createCache") + @RequestMapping(value = "/api/createCache", method = RequestMethod.POST, produces = "application/json") @ResponseBody public ResponseEntity createCache(@RequestBody Cache cache) { return createCacheUtil(cache); } + @ApiOperation(value = "Checks if the given User has an admin role") + @ApiResponses(value = { + @ApiResponse(code = 404, message = "Database error"), + @ApiResponse(code = 401, message = "JWT Token expired"), + @ApiResponse(code = 400, message = "Something went wrong at verification") + + }) @CrossOrigin(origins = "*", allowedHeaders = "*") // only for dev purpose - @RequestMapping("/api/checkAdmin") + @RequestMapping(value = "/api/checkAdmin", method = RequestMethod.GET, produces = "application/json") @ResponseBody public ResponseEntity checkAdmin(@RequestParam String token) { @@ -335,23 +361,36 @@ public class Controller { return ResponseEntity.status(401).body(false); } + @ApiOperation(value = "Returns all Stations") + @ApiResponses(value = { + @ApiResponse(code = 404, message = "Database error") + }) @CrossOrigin(origins = "*", allowedHeaders = "*") // only for dev purpose - @RequestMapping("/api/getAllStations") + @RequestMapping(value = "/api/getAllStations", method = RequestMethod.GET, produces = "application/json") @ResponseBody public ResponseEntity getAllStations() { return ResponseEntity.status(200).body(new Gson().toJson(stationRepository.findAll())); } + @ApiOperation(value = "Deletes a Cache") + @ApiResponses(value = { + @ApiResponse(code = 404, message = "Database error") + }) @CrossOrigin(origins = "*", allowedHeaders = "*") // only for dev purpose - @RequestMapping("/api/deleteCache") + @RequestMapping(value = "/api/deleteCache", method = RequestMethod.DELETE, produces = "application/json") @ResponseBody public ResponseEntity deleteCache(@RequestParam String cacheID) { return deleteCacheUtil(cacheID); } - + @ApiOperation(value = "Returns all Caches finished/started by a given User") + @ApiResponses(value = { + @ApiResponse(code = 404, message = "Database error"), + @ApiResponse(code = 401, message = "JWT Token expired"), + @ApiResponse(code = 400, message = "Something went wrong at verification") + }) @CrossOrigin(origins = "*", allowedHeaders = "*") // only for dev purpose - @RequestMapping("/api/getMyCaches") + @RequestMapping(value = "/api/getMyCaches", method = RequestMethod.GET, produces = "application/json") @ResponseBody public ResponseEntity getMyCaches(@RequestParam String token) { @@ -386,8 +425,12 @@ public class Controller { } } + @ApiOperation(value = "Returns the rankinglist") + @ApiResponses(value = { + @ApiResponse(code = 404, message = "Database error") + }) @CrossOrigin(origins = "*", allowedHeaders = "*") // only for dev purpose - @RequestMapping("/api/getRankingList") + @RequestMapping(value = "/api/getRankingList", method = RequestMethod.GET, produces = "application/json") @ResponseBody public ResponseEntity getRankingList() { @@ -401,8 +444,12 @@ public class Controller { return ResponseEntity.status(200).body(new Gson().toJson(sendBackUsers)); } + @ApiOperation(value = "Returns the Team Rankinglist") + @ApiResponses(value = { + @ApiResponse(code = 404, message = "Database error") + }) @CrossOrigin(origins = "*", allowedHeaders = "*") // only for dev purpose - @RequestMapping("/api/getTeamRankingList") + @RequestMapping(value = "/api/getTeamRankingList", method = RequestMethod.GET, produces = "application/json") @ResponseBody public ResponseEntity getTeamRankingList() { @@ -416,8 +463,14 @@ public class Controller { return ResponseEntity.status(200).body(new Gson().toJson(sendBackTeams)); } + @ApiOperation(value = "Returns a user from a given token") + @ApiResponses(value = { + @ApiResponse(code = 404, message = "Database error"), + @ApiResponse(code = 401, message = "JWT Token expired"), + @ApiResponse(code = 400, message = "Something went wrong at verification") + }) @CrossOrigin(origins = "*", allowedHeaders = "*") // only for dev purpose - @RequestMapping("/api/getUser") + @RequestMapping(value = "/api/getUser", method = RequestMethod.GET, produces = "application/json") @ResponseBody public ResponseEntity getUser(@RequestParam String token) { @@ -444,8 +497,14 @@ public class Controller { } } + @ApiOperation(value = "Creates a new Team") + @ApiResponses(value = { + @ApiResponse(code = 404, message = "Database error"), + @ApiResponse(code = 401, message = "JWT Token expired"), + @ApiResponse(code = 400, message = "Something went wrong at verification") + }) @CrossOrigin(origins = "*", allowedHeaders = "*") // only for dev purpose - @RequestMapping("/api/createTeam") + @RequestMapping(value = "/api/createTeam", method = RequestMethod.POST, produces = "application/json") @ResponseBody public ResponseEntity createTeam(@RequestParam String token, @RequestParam String name) { @@ -491,6 +550,8 @@ public class Controller { return ResponseEntity.status(200).body(new Gson().toJson(team)); } + //--------- + @CrossOrigin(origins = "*", allowedHeaders = "*") // only for dev purpose @RequestMapping("/api/joinTeam") @ResponseBody