From 896702b8f812735f0834c3147f9bbc8ab636c5ce Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 16 May 2019 09:13:04 +0200 Subject: [PATCH 1/5] fixed leaveTeam --- .../hhn/labsw/bugageocaching/controller/Controller.java | 6 +++++- .../bugageocaching/repositories/TeamInviteRepository.java | 1 + 2 files changed, 6 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 071dd3f..44d6cfe 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -448,7 +448,7 @@ public class Controller { } }*/ List bearbeitetList = bearbeitetRepository.findByUser(user); - logger.debug("/api/getMyCaches Got all bearbeitet entreis of user: " +user.getEmail()); + logger.debug("/api/getMyCaches Got all bearbeitet entreis of user: " + user.getEmail()); return ResponseEntity.status(200).body(new Gson().toJson(bearbeitetList)); } else { return ResponseEntity.status(404).body("Es gab einen Fehler. Bitte versuche es erneut oder kontaktiere einen Admin!"); @@ -721,6 +721,10 @@ public class Controller { // löscht team, wenn keine teammitglieder mehr vorhanden if (user_infos.size() == 0) { + List teamInvites = teamInviteRepository.findByTeam(team); + for (TeamInvite teamInvite : teamInvites) { + teamInviteRepository.delete(teamInvite); + } teamRepository.delete(team); } diff --git a/src/main/java/hhn/labsw/bugageocaching/repositories/TeamInviteRepository.java b/src/main/java/hhn/labsw/bugageocaching/repositories/TeamInviteRepository.java index 0031632..154cd3d 100644 --- a/src/main/java/hhn/labsw/bugageocaching/repositories/TeamInviteRepository.java +++ b/src/main/java/hhn/labsw/bugageocaching/repositories/TeamInviteRepository.java @@ -11,4 +11,5 @@ import java.util.List; public interface TeamInviteRepository extends JpaRepository { TeamInvite findByUserAndTeam(User user, Team team); List findByUser(User user); + List findByTeam(Team team); } From 78008b010e6c7d6f69051fc8ffe506e69ac7512f Mon Sep 17 00:00:00 2001 From: Maximilian Leopold Date: Thu, 16 May 2019 09:34:55 +0200 Subject: [PATCH 2/5] More Logger --- .../bugageocaching/controller/Controller.java | 119 +++++------------- .../util/CacheConstructionUtil.java | 2 +- 2 files changed, 30 insertions(+), 91 deletions(-) diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index 071dd3f..89a1f7d 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -72,98 +72,11 @@ public class Controller { @ResponseBody public ResponseEntity getAllCaches() { logger.warn("API CALL: /api/allCaches"); + logger.debug("/api/allCaches PARAMETERS: -"); return ResponseEntity.status(200).body(new Gson().toJson(cacheRepository.findAll())); } - @ApiOperation(value = "Starts the given Cache for the given User") - @CrossOrigin(origins = "*", allowedHeaders = "*") // only for dev purpose - @ApiResponses(value = { - @ApiResponse(code = 404, message = "Database error"), - @ApiResponse(code = 401, message = "JWT Token expired"), - @ApiResponse(code = 400, message = "Something went wrong at verification") - }) - @RequestMapping(value = "/api/startCache", method = RequestMethod.POST, produces = "application/json") - @ResponseBody - public ResponseEntity startCache(@RequestParam(value = "token", defaultValue = "-1") String token, - @RequestParam String cacheID) { - - if (!token.equals("-1")) { // ein angemeldeter user startet den cache(es werden zwei parameter übergeben) - - Bearbeitet bearbeitet = new Bearbeitet(); - - - //---------------------- - //Verify token - ResponseEntity tokenVerification = VerificationUtil.verifyToken(token); - - //Error in token verification - if (tokenVerification.getStatusCodeValue() != 200) { - return tokenVerification; - } - - Claims claims = (Claims) tokenVerification.getBody(); - - ResponseEntity getUser = FinderUtil.findUserFromClaim(claims); - - if (getUser.getStatusCodeValue() != 200) { - return getUser; - } - - User user = (User) getUser.getBody(); - - bearbeitet.setUser(user); - - //---------------------- - //Get Cache - ResponseEntity getCache = FinderUtil.findCacheById(cacheID); - - if (getCache.getStatusCodeValue() != 200) { - return getCache; - } - - Cache cache = (Cache) getCache.getBody(); - //---------------------- - - if (bearbeitetRepository.findByUserAndCache(user, cache) != null) { - Bearbeitet bearbeitet1 = bearbeitetRepository.findByUserAndCache(user, cache); - return ResponseEntity.status(200).body(bearbeitet1); - } - - bearbeitet.setCache(cache); - - Station startStation = cache.getStationen().get(0); - bearbeitet.setAktuelleStation(startStation); - - //Get CacheAccesDefinition - ResponseEntity getCacheAccesDefinition = FinderUtil.findCacheAccesDefinitionById("0"); - - if (getCacheAccesDefinition.getStatusCodeValue() != 200) { - return getCacheAccesDefinition; - } - - CacheAccesDefinition cacheAccesDefinition = (CacheAccesDefinition) getCacheAccesDefinition.getBody(); - //---------------------- - bearbeitet.setCacheAccesDefinition(cacheAccesDefinition); - - //bearbeitetRepository.save(bearbeitet); - - return ResponseEntity.status(201).body(new Gson().toJson(bearbeitet)); - - } else { // kein angemeldeter User startet den cache(es wird nur der cache als parameter übergeben) - - ResponseEntity getCache = FinderUtil.findCacheById(cacheID); - - if (getCache.getStatusCodeValue() != 200) { - return getCache; - } - - Cache cache = (Cache) getCache.getBody(); - - return ResponseEntity.status(200).body(new Gson().toJson(cache)); - } - } - @ApiOperation(value = "Checks if the given Station is the correct next Station in the Cache") @ApiResponses(value = { @ApiResponse(code = 404, message = "Database error"), @@ -327,6 +240,8 @@ public class Controller { @RequestMapping(value = "/api/createCache", method = RequestMethod.POST, produces = "application/json") @ResponseBody public ResponseEntity createCache(@RequestBody Cache cache) { + logger.warn("API CALL: api/createCache"); + logger.debug("/api/allCaches PARAMETERS:\ncache: " + cache.getName()); return createCacheUtil(cache); } @@ -340,7 +255,8 @@ public class Controller { @RequestMapping(value = "/api/editCache", method = RequestMethod.PUT, produces = "application/json") @ResponseBody public ResponseEntity editCache(@RequestBody Cache newCache) { - + logger.warn("API CALL: /api/editCache"); + logger.debug("/api/editCache PARAMETERS:\nnewCache: " + newCache.getName()); return editCacheUtil(newCache); } @@ -391,6 +307,7 @@ public class Controller { @ResponseBody public ResponseEntity getAllStations() { logger.warn("API CALL: /api/getAllStations"); + logger.debug("/api/getAllStations: PARAMETERS: -"); return ResponseEntity.status(200).body(new Gson().toJson(stationRepository.findAll())); } @@ -399,10 +316,11 @@ public class Controller { @ApiResponse(code = 404, message = "Database error") }) @CrossOrigin(origins = "*", allowedHeaders = "*") // only for dev purpose - @RequestMapping(value = "/api/deleteCache", method = {RequestMethod.DELETE, RequestMethod.GET}, produces = "application/json") + @RequestMapping(value = "/api/deleteCache", method = {RequestMethod.DELETE}, produces = "application/json") @ResponseBody public ResponseEntity deleteCache(@RequestParam String cacheID) { logger.warn("API CALL: /api/deleteCache"); + logger.debug("/api/deleteCache: PARAMETERS:\ncacheID: " + cacheID); return deleteCacheUtil(cacheID); } @@ -418,6 +336,7 @@ public class Controller { public ResponseEntity getMyCaches(@RequestParam String token) { logger.warn("API CALL: /api/getMyCaches"); + logger.debug("/api/getMyCaches: PARAMETERS:\ntoken: " + token); ResponseEntity verifyToken = VerificationUtil.verifyToken(token); @@ -465,6 +384,7 @@ public class Controller { public ResponseEntity getRankingList() { logger.warn("API CALL: /api/getRankingList"); + logger.debug("/api/getRankingList: PARAMETERS: -"); List sendBackUsers = new LinkedList<>(); @@ -489,14 +409,21 @@ public class Controller { @ResponseBody public ResponseEntity getTeamRankingList() { + logger.warn("API CALL: /api/getTeamRankingList"); + logger.debug("/api/getTeamRankingList: PARAMETERS: -"); + List sendBackTeams = new LinkedList<>(); + logger.debug("/api/getTeamRankingList Created List sendBackTeams"); List rankingTeams = userRepository.getTeamRankingList(); + logger.debug("/api/getTeamRankingList Got Rankinglist in Format Object[]"); + logger.debug("/api/getTeamRankingList Convert Object to TeamRankingListHelper"); for (Object[] obj : rankingTeams) { BigDecimal i = (BigDecimal) obj[1]; TeamRankingListHelper tmp = new TeamRankingListHelper((String) obj[0], i.intValue()); System.out.println(tmp); sendBackTeams.add(tmp); } + logger.debug("/api/getTeamRankingList Send RankingList to Frontend"); return ResponseEntity.status(200).body(new Gson().toJson(sendBackTeams)); } @@ -511,25 +438,37 @@ public class Controller { @ResponseBody public ResponseEntity getUser(@RequestParam String token) { + logger.warn("API CALL: /api/getUser"); + logger.debug("/api/getUser: PARAMETERS:\ntoken: " + token); + logger.debug("/api/getUser Trying to verify Token: " + token); ResponseEntity verifyToken = VerificationUtil.verifyToken(token); if (verifyToken.getStatusCodeValue() != 200) { + logger.debug("/api/getUser Error in Verification of Token: " + token); return verifyToken; } + logger.debug("/api/getUser Trying to get User"); Claims claims = (Claims) verifyToken.getBody(); + logger.debug("/api/getUser Got Claim: " + new GsonBuilder().setPrettyPrinting().create().toJson(claims)); ResponseEntity getUser = FinderUtil.findUserFromClaim(claims); + if (getUser.getStatusCodeValue() != 200) { + logger.debug("/api/getUser Error getting User"); return getUser; } User user = (User) getUser.getBody(); + logger.debug("/api/getUser Got User: " + user.getEmail()); if (user != null) { + logger.debug("/api/getUser User != null " + user.getEmail()); + logger.debug("/api/getUser Send User to Frontend"); return ResponseEntity.status(200).body(new Gson().toJson(user)); } else { + logger.debug("Error in Getting User"); return ResponseEntity.status(404).body("Es gab einen Fehler. Bitte versuche es erneut oder kontaktiere einen Admin!e"); } } diff --git a/src/main/java/hhn/labsw/bugageocaching/util/CacheConstructionUtil.java b/src/main/java/hhn/labsw/bugageocaching/util/CacheConstructionUtil.java index 0866ba6..49a9ad0 100644 --- a/src/main/java/hhn/labsw/bugageocaching/util/CacheConstructionUtil.java +++ b/src/main/java/hhn/labsw/bugageocaching/util/CacheConstructionUtil.java @@ -146,7 +146,7 @@ public class CacheConstructionUtil { } } - // wenn Station neu hinzugefügt wurde, wird die Station zusätzlich in die Datenbank gespeichert + // wenn Station neu hinzugefügt wurde, wirdcd die Station zusätzlich in die Datenbank gespeichert if (stationIsNew) { response = createStationUtil(station); if (response.getStatusCodeValue() == 200) { From d00d3104499a1e39c02133fea2ac3762a29f0add Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 16 May 2019 10:00:41 +0200 Subject: [PATCH 3/5] a user cant invite himself now --- .../java/hhn/labsw/bugageocaching/controller/Controller.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index 44d6cfe..ffd8580 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -767,6 +767,10 @@ public class Controller { if (invitedUser == null) { return ResponseEntity.status(404).body("Es gibt keinen Benutzer mit dieser email."); } + + if (invitedUser == user) { + return ResponseEntity.status(404).body("Du kannst dich selbst nicht einladen."); + } //---------------------- From 99f9748de359f625b54ea36040b31342c043094a Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 16 May 2019 11:45:34 +0200 Subject: [PATCH 4/5] fehlermeldungen vereinfacht --- .../util/CacheConstructionUtil.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/java/hhn/labsw/bugageocaching/util/CacheConstructionUtil.java b/src/main/java/hhn/labsw/bugageocaching/util/CacheConstructionUtil.java index 49a9ad0..b957a16 100644 --- a/src/main/java/hhn/labsw/bugageocaching/util/CacheConstructionUtil.java +++ b/src/main/java/hhn/labsw/bugageocaching/util/CacheConstructionUtil.java @@ -45,12 +45,14 @@ public class CacheConstructionUtil { public static ResponseEntity createCacheUtil(Cache cache) { // Stationen werden in die Datenbank eingetragen + int position = 1; for (Station station : cache.getStationen()) { - ResponseEntity response = createStationUtil(station); + ResponseEntity response = createStationUtil(station, position); if (response.getStatusCodeValue() == 400) { deleteStationenUtil(cache); return response; } + position++; } // Caches werden in die Datenbank eingetragen @@ -81,18 +83,19 @@ public class CacheConstructionUtil { return ResponseEntity.status(200).body(new Gson().toJson(cache)); } - public static ResponseEntity createStationUtil(Station station) { + public static ResponseEntity createStationUtil(Station station, int position) { if (station.getDescription().length() == 0 /*|| station.getSolution().length() == 0*/) { return ResponseEntity.status(400).body("Alle Felder müssen ausgefüllt werden!"); } if (station.getLattitude() < 49 || station.getLattitude() > 50) { - return ResponseEntity.status(400).body("Der Breitengrad einer Station ist außerhalb der Bundesgartenschau"); + + return ResponseEntity.status(400).body("Der Breitengrad der Station " + position + " ist außerhalb der Bundesgartenschau. Dieser muss zwischen 49 und 50 liegen."); } if (station.getLongitude() < 9 || station.getLongitude() > 10) { - return ResponseEntity.status(400).body("Der Längengrad einer Station ist außerhalb der Bundesgartenschau"); + return ResponseEntity.status(400).body("Der Längengrad der Station " + position + " ist außerhalb der Bundesgartenschau. Dieser muss zwischen 9 und 10 liegen."); } Random r = new Random(); @@ -135,12 +138,13 @@ public class CacheConstructionUtil { ResponseEntity response = new ResponseEntity(HttpStatus.ACCEPTED); List newCreatedStationList = new ArrayList(); + int position = 1; for (Station station : cache.getStationen()) { boolean stationIsNew = true; for (Station oldStation : oldCache.getStationen()) { // wenn Station schon vorher vorhanden war, wird diese mit den neuen Daten geupdatet if (oldStation.getId() == station.getId()) { - response = createStationUtil(station); + response = createStationUtil(station, position); stationIsNew = false; break; } @@ -148,7 +152,7 @@ public class CacheConstructionUtil { // wenn Station neu hinzugefügt wurde, wirdcd die Station zusätzlich in die Datenbank gespeichert if (stationIsNew) { - response = createStationUtil(station); + response = createStationUtil(station, position); if (response.getStatusCodeValue() == 200) { newCreatedStationList.add(station); } @@ -163,6 +167,7 @@ public class CacheConstructionUtil { deleteNewCreatedStationsUtil(newCreatedStationList); return response; } + position++; } // überprüft den Cache nach validen Daten From 7ae384b0da3fbf04181971ee03191fb8a52aa078 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 16 May 2019 12:10:58 +0200 Subject: [PATCH 5/5] =?UTF-8?q?Breitengrad/L=C3=A4ngengrad-Reihenfolge=20g?= =?UTF-8?q?etauscht=20bei=20der=20Stationserstellung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/pages/StationEdit.vue | 2 +- frontend/src/pages/StationEndEdit.vue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/pages/StationEdit.vue b/frontend/src/pages/StationEdit.vue index 61b2db3..65da5c1 100644 --- a/frontend/src/pages/StationEdit.vue +++ b/frontend/src/pages/StationEdit.vue @@ -22,7 +22,7 @@ >
+ label="Breitengrad/Längengrad"/>
diff --git a/frontend/src/pages/StationEndEdit.vue b/frontend/src/pages/StationEndEdit.vue index 1f37fc5..4ec8663 100644 --- a/frontend/src/pages/StationEndEdit.vue +++ b/frontend/src/pages/StationEndEdit.vue @@ -9,7 +9,7 @@ >
+ label="Breitengrad/Längengrad"/>