Merge branch 'develop' into frontend/kathy
This commit is contained in:
commit
c234ddeb5d
@ -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.*;
|
||||
|
||||
@ -381,7 +382,7 @@ public class Controller {
|
||||
@CrossOrigin(origins = "*", allowedHeaders = "*") // only for dev purpose
|
||||
@RequestMapping(value = "/api/getRankingList", method = RequestMethod.GET, produces = "application/json")
|
||||
@ResponseBody
|
||||
public ResponseEntity getRankingList() {
|
||||
public ResponseEntity getRankingList(@RequestParam(value = "token", defaultValue = "null") String token) {
|
||||
|
||||
logger.warn("API CALL: /api/getRankingList");
|
||||
logger.debug("/api/getRankingList: PARAMETERS: -");
|
||||
@ -397,6 +398,34 @@ public class Controller {
|
||||
}
|
||||
logger.debug("/api/getRankingList Converted Objects to RankingListHelper");
|
||||
logger.debug("/api/getRankingList RankingList: " + new GsonBuilder().setPrettyPrinting().create().toJson(sendBackUsers));
|
||||
|
||||
if(!token.equals("null")) {
|
||||
|
||||
// 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();
|
||||
|
||||
ResponseEntity singlePlace = getRankingPlace(user.getEmail());
|
||||
|
||||
if(singlePlace.getStatusCodeValue() == 200){
|
||||
RankingListHelper rankingListHelper = new RankingListHelper(user.getEmail(), (Integer) singlePlace.getBody());
|
||||
sendBackUsers.add(rankingListHelper);
|
||||
}
|
||||
}
|
||||
return ResponseEntity.status(200).body(new Gson().toJson(sendBackUsers));
|
||||
}
|
||||
|
||||
@ -1117,6 +1146,128 @@ public class Controller {
|
||||
return ResponseEntity.status(200).body(new Gson().toJson(poi));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Resets the rankinglist")
|
||||
@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.PUT, 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 = "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)")
|
||||
@ApiResponses(value = {
|
||||
@ApiResponse(code = 404, message = "Database error"),
|
||||
@ -1129,6 +1280,7 @@ public class Controller {
|
||||
return ResponseEntity.status(200).body(userRepository.getRankingPlaceFromUser(name));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -27,8 +27,8 @@ public interface UserRepository extends CrudRepository<User, Integer> {
|
||||
" SELECT DISTINCT u.Email AS Name,\n" +
|
||||
" ui.ranking_points_sum AS Ranglistenpunkte\n" +
|
||||
" FROM user u,\n" +
|
||||
" buga19geocaching.user_info ui,\n" +
|
||||
" buga19geocaching.user_roles ur\n" +
|
||||
" user_info ui,\n" +
|
||||
" user_roles ur\n" +
|
||||
" WHERE u.id = ui.user_id\n" +
|
||||
" AND u.id = ur.user_id\n" +
|
||||
" order by ranking_points_sum DESC) as INR) as RN\n" +
|
||||
@ -45,7 +45,7 @@ public interface UserRepository extends CrudRepository<User, Integer> {
|
||||
" AND t.id = ui.team_id\n" +
|
||||
" AND ui.team_id IS NOT NULL\n" +
|
||||
"GROUP BY teamname\n" +
|
||||
"ORDER by ranking_points_sum DESC\n" +
|
||||
"ORDER by Ranglistenpunkte DESC\n" +
|
||||
"LIMIT 10;", nativeQuery = true)
|
||||
List<Object[]> getTeamRankingList();
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user