From ce22469c79bf16477d95c60d839444ac84fc80ec Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 23 May 2019 12:09:58 +0200 Subject: [PATCH 1/2] added resetRankingList --- .../bugageocaching/controller/Controller.java | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index 6797a90..ecdc60a 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -15,6 +15,7 @@ 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.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -1117,6 +1118,60 @@ public class Controller { return ResponseEntity.status(200).body(new Gson().toJson(poi)); } + @ApiOperation(value = "Returns the Team of a 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(value = "/api/resetRankingList", method = RequestMethod.GET, produces = "application/json") + public ResponseEntity resetRankingList(@RequestParam String token) { + logger.warn("API CALL: /api/resetRankingList"); + + // verify user + ResponseEntity verifyToken = VerificationUtil.verifyToken(token); + + if (verifyToken.getStatusCodeValue() != 200) { + return verifyToken; + } + + //get User + Claims claims = (Claims) verifyToken.getBody(); + + ResponseEntity getUser = FinderUtil.findUserFromClaim(claims); + + if (getUser.getStatusCodeValue() != 200) { + return getUser; + } + + User user = (User) getUser.getBody(); + + logger.debug("/api/resetRankingList: " + "User verificated: " + user.getEmail()); + //---------------------- + boolean isAdmin = false; + for (Role role : user.getRoles()) { + if (role.getId() == 7) { + isAdmin = true; + } + } + + if (isAdmin) { + for (User_Info user_info : user_infoRepository.findAll()) { + user_info.setRankingPointsSum(0); + user_infoRepository.save(user_info); + } + for (Bearbeitet bearbeitet : bearbeitetRepository.findAll()) { + if (bearbeitet.getCacheAccesDefinition().getId() == 1) { + bearbeitetRepository.delete(bearbeitet); + } + } + return ResponseEntity.status(200).body(HttpStatus.OK); + } else { + return ResponseEntity.status(400).body("Der Benutzer ist kein Admin und kann deshalb die Rangliste nicht zurücksetzen."); + } + } + @ApiOperation(value = "Test method (Changes its purpose often)") @ApiResponses(value = { @ApiResponse(code = 404, message = "Database error"), From c0befac9e3aa35837f3b8d0ffce9cc9b38564ae0 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 23 May 2019 12:12:40 +0200 Subject: [PATCH 2/2] changed requestMethod --- .../java/hhn/labsw/bugageocaching/controller/Controller.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index ff0bd00..b014688 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -1125,7 +1125,7 @@ public class Controller { @ApiResponse(code = 400, message = "Something went wrong at verification") }) @CrossOrigin(origins = "*", allowedHeaders = "*") // only for dev purpose - @RequestMapping(value = "/api/resetRankingList", method = RequestMethod.GET, produces = "application/json") + @RequestMapping(value = "/api/resetRankingList", method = RequestMethod.PUT, produces = "application/json") public ResponseEntity resetRankingList(@RequestParam String token) { logger.warn("API CALL: /api/resetRankingList");