added resetRankingList

This commit is contained in:
Michael 2019-05-23 12:09:58 +02:00
parent 63e63c55fa
commit ce22469c79

View File

@ -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"),