Added Method to reset Cache for certain user

This commit is contained in:
Maximilian Leopold 2019-05-23 12:06:03 +02:00
parent 63e63c55fa
commit cfe56d175c

View File

@ -1117,6 +1117,74 @@ public class Controller {
return ResponseEntity.status(200).body(new Gson().toJson(poi)); return ResponseEntity.status(200).body(new Gson().toJson(poi));
} }
@ApiOperation(value = "Deletes the bearbeitet entry from a User from a Cache")
@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/deleteCacheForUser", method = RequestMethod.DELETE, produces = "application/json")
public ResponseEntity deleteCacheForUser(@RequestParam String token, @RequestParam String cacheID){
logger.warn("API CALL: /api/deleteCacheForUser");
// 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();
//----------------------
//Get Cache
ResponseEntity getCache = FinderUtil.findCacheById(cacheID);
if (getCache.getStatusCodeValue() != 200) {
return getCache;
}
Cache cache = (Cache) getCache.getBody();
//Get Bearbeitet entry
ResponseEntity getBearbeitet = FinderUtil.findBearbeitetByUserAndCache(user, cache);
if(getBearbeitet.getStatusCodeValue() != 200){
return getBearbeitet;
}
Bearbeitet bearbeitet = (Bearbeitet) getBearbeitet.getBody();
//Cache already finished
if(bearbeitet.getCacheAccesDefinition().getId() == 1){
int rankingPoints = cache.getRankingPoints();
//Get User_Info
User_Info user_info = user_infoRepository.findUser_InfoByUser(user);
//Subtract RankingPoints
user_info.setRankingPointsSum(user_info.getRankingPointsSum() - rankingPoints);
user_infoRepository.save(user_info);
}
bearbeitetRepository.delete(bearbeitet);
return ResponseEntity.status(200).body("Cache for User " + user.getEmail() + " for cache " + cache.getName() + " reseted");
}
@ApiOperation(value = "Test method (Changes its purpose often)") @ApiOperation(value = "Test method (Changes its purpose often)")
@ApiResponses(value = { @ApiResponses(value = {
@ApiResponse(code = 404, message = "Database error"), @ApiResponse(code = 404, message = "Database error"),
@ -1129,6 +1197,8 @@ public class Controller {
return ResponseEntity.status(200).body(userRepository.getRankingPlaceFromUser(name)); return ResponseEntity.status(200).body(userRepository.getRankingPlaceFromUser(name));
} }
} }