From f2b84b93a309beee38808ea8c10d411b36a5826d Mon Sep 17 00:00:00 2001 From: Katharina Will Date: Sat, 18 May 2019 11:08:09 +0200 Subject: [PATCH 01/13] Changes to iFrame URL of Lageplan for CacheStart map --- frontend/src/pages/CacheStart.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/pages/CacheStart.vue b/frontend/src/pages/CacheStart.vue index 2973271..29924b2 100644 --- a/frontend/src/pages/CacheStart.vue +++ b/frontend/src/pages/CacheStart.vue @@ -59,7 +59,7 @@ this.stationID = cache.stationen[0]; this.lon = this.stationID.longitude; this.lat = this.stationID.lattitude; - this.iFrameURL = `http://www.se.hs-heilbronn.de:3000/api/map/lon=${this.lon}&lat=${this.lat}` + this.iFrameURL = `https://seserver.se.hs-heilbronn.de:3000/api/map/lon=${this.lon}&lat=${this.lat}` }) }, checkStation() { From cfe56d175c7fe029a2f94bc1d7fd8896d8be431e Mon Sep 17 00:00:00 2001 From: Maximilian Leopold Date: Thu, 23 May 2019 12:06:03 +0200 Subject: [PATCH 02/13] Added Method to reset Cache for certain user --- .../bugageocaching/controller/Controller.java | 70 +++++++++++++++++++ 1 file changed, 70 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..bcef187 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -1117,6 +1117,74 @@ public class Controller { 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)") @ApiResponses(value = { @ApiResponse(code = 404, message = "Database error"), @@ -1129,6 +1197,8 @@ public class Controller { return ResponseEntity.status(200).body(userRepository.getRankingPlaceFromUser(name)); } + + } From ce22469c79bf16477d95c60d839444ac84fc80ec Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 23 May 2019 12:09:58 +0200 Subject: [PATCH 03/13] 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 04/13] 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"); From 8b7f08dcc5ded7cca3bae8979e60b55ad40efb02 Mon Sep 17 00:00:00 2001 From: Maximilian Leopold Date: Thu, 23 May 2019 12:18:11 +0200 Subject: [PATCH 05/13] Fixed Rankinglust --- .../hhn/labsw/bugageocaching/repositories/UserRepository.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java b/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java index 8573416..e0d4bc0 100644 --- a/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java +++ b/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java @@ -27,8 +27,8 @@ public interface UserRepository extends CrudRepository { " 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" + From 59acf0a79f8c0571131f236484e9ecf311d022f6 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 23 May 2019 12:22:30 +0200 Subject: [PATCH 06/13] fixed teamRankingList --- .../hhn/labsw/bugageocaching/repositories/UserRepository.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java b/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java index 8573416..62f0668 100644 --- a/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java +++ b/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java @@ -45,7 +45,7 @@ public interface UserRepository extends CrudRepository { " 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 getTeamRankingList(); From eff92de0c08fe15e0b22a5056f1ffefdb81860d9 Mon Sep 17 00:00:00 2001 From: Maximilian Leopold Date: Thu, 23 May 2019 12:29:26 +0200 Subject: [PATCH 07/13] Added Own rank to rankinglist --- .../bugageocaching/controller/Controller.java | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 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 b014688..c0ab298 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -382,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: -"); @@ -398,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)); } From d6d368ddb41b5b28761820ed8d6fd6292f61a162 Mon Sep 17 00:00:00 2001 From: Katharina Will Date: Thu, 23 May 2019 12:52:42 +0200 Subject: [PATCH 08/13] Added maps to necessary pages --- frontend/src/boot/map.js | 7 + frontend/src/components/map.vue | 22 +++ frontend/src/pages/CacheStart.vue | 34 +++- frontend/src/pages/Overview.vue | 87 +++++++--- frontend/src/pages/StationEdit.vue | 21 ++- frontend/src/pages/StationView.vue | 32 +++- package-lock.json | 245 +++++++++++++++++++++++++++++ 7 files changed, 410 insertions(+), 38 deletions(-) create mode 100644 frontend/src/boot/map.js create mode 100644 frontend/src/components/map.vue create mode 100644 package-lock.json diff --git a/frontend/src/boot/map.js b/frontend/src/boot/map.js new file mode 100644 index 0000000..91a0584 --- /dev/null +++ b/frontend/src/boot/map.js @@ -0,0 +1,7 @@ +import Vue from 'vue' +import VueLayers from 'vuelayers' +import 'vuelayers/lib/style.css' // needs css-loader + +export default async ({ Vue }) => { + Vue.use(VueLayers); +} diff --git a/frontend/src/components/map.vue b/frontend/src/components/map.vue new file mode 100644 index 0000000..dc55020 --- /dev/null +++ b/frontend/src/components/map.vue @@ -0,0 +1,22 @@ + + + + + diff --git a/frontend/src/pages/CacheStart.vue b/frontend/src/pages/CacheStart.vue index 29924b2..78ac365 100644 --- a/frontend/src/pages/CacheStart.vue +++ b/frontend/src/pages/CacheStart.vue @@ -1,11 +1,21 @@