From 7a693d51f9f181a76245c63ff840b0afb78d05e0 Mon Sep 17 00:00:00 2001 From: rchrist Date: Tue, 23 Apr 2019 16:58:22 +0200 Subject: [PATCH 01/62] register page added --- frontend/src/layouts/MyLayout.vue | 14 +++ frontend/src/pages/Register.vue | 180 ++++++++++++++++++++++++++++++ frontend/src/router/routes.js | 5 + 3 files changed, 199 insertions(+) create mode 100644 frontend/src/pages/Register.vue diff --git a/frontend/src/layouts/MyLayout.vue b/frontend/src/layouts/MyLayout.vue index 6bc4eb9..ab73ffc 100644 --- a/frontend/src/layouts/MyLayout.vue +++ b/frontend/src/layouts/MyLayout.vue @@ -99,6 +99,20 @@ Login + + + + + + Register + + diff --git a/frontend/src/pages/Register.vue b/frontend/src/pages/Register.vue new file mode 100644 index 0000000..efb2487 --- /dev/null +++ b/frontend/src/pages/Register.vue @@ -0,0 +1,180 @@ + + + diff --git a/frontend/src/router/routes.js b/frontend/src/router/routes.js index 362b097..03ffe42 100644 --- a/frontend/src/router/routes.js +++ b/frontend/src/router/routes.js @@ -54,6 +54,11 @@ const routes = [ path: "/profile/", component: () => import("layouts/MyLayout.vue"), children: [{ path: "", component: () => import("pages/Profile.vue") }] + }, + { + path: "/register/", + component: () => import("layouts/MyLayout.vue"), + children: [{ path: "", component: () => import("pages/Register.vue") }] } ]; From 57c5c7c39a877a16b0092880631eea27bf42660a Mon Sep 17 00:00:00 2001 From: Timo Volkmann Date: Thu, 25 Apr 2019 12:38:04 +0200 Subject: [PATCH 02/62] redirect finished station to CacheEnd. not tested --- frontend/src/pages/CacheEnd.vue | 2 +- frontend/src/pages/StationView.vue | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/frontend/src/pages/CacheEnd.vue b/frontend/src/pages/CacheEnd.vue index 8ccc20b..faf8813 100644 --- a/frontend/src/pages/CacheEnd.vue +++ b/frontend/src/pages/CacheEnd.vue @@ -5,7 +5,7 @@

{{ end1 + rankingPoints + end2 }}

- + diff --git a/frontend/src/pages/StationView.vue b/frontend/src/pages/StationView.vue index 75fb24a..453ffb8 100644 --- a/frontend/src/pages/StationView.vue +++ b/frontend/src/pages/StationView.vue @@ -51,7 +51,7 @@ data() { return { - code: "", + //code: "", cache: null, data: { cacheId: 22, @@ -165,8 +165,8 @@ setParams() { console.log("setParams: "); let params = {}; - params.cacheID = this.code.split('/')[0]; - params.stationID = this.code.split('/')[1]; + params.cacheID = this.result.split('/')[0]; + params.stationID = this.result.split('/')[1]; params.durchgefuehrterCacheID = this.cacheID; console.log(params.cacheID + " und " + params.stationID); if (localStorage.getItem('userToken')) { @@ -198,7 +198,11 @@ .then((response) => { console.log("resolve(true)"); resolve(true); - this.$router.push({path: `/station/${params.cacheID}/${params.stationID}`}); + if (response.data.cache_acces_definition === 0) { + this.$router.push({path: `/station/${params.cacheID}/${params.stationID}`}); + } else if (response.data.cache_acces_definition === 1) { + this.$router.push({path: `/CacheEnd/${params.cacheID}`}); + } }).catch((error) => { console.log("resolve(false)"); // Error From a8b0b1bbb4ba621f081fd0123b811295202e5025 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 25 Apr 2019 12:40:56 +0200 Subject: [PATCH 03/62] added createTeam --- .../bugageocaching/controller/Controller.java | 51 ++++++++++++++++++- .../labsw/bugageocaching/entities/Team.java | 9 ---- 2 files changed, 50 insertions(+), 10 deletions(-) diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index ac8fd0e..076e4e4 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -48,7 +48,6 @@ public class Controller { @Autowired User_InfoRepository user_infoRepository; - @PostConstruct public void init() { fetchPublicKey(); @@ -424,6 +423,56 @@ public class Controller { } } + @CrossOrigin(origins = "http://localhost:8081") // only for dev purpose + @RequestMapping("/api/createTeam") + @ResponseBody + public ResponseEntity createTeam(@RequestParam String token, + @RequestParam String name) { + ResponseEntity verifyToken = VerificationUtil.verifyToken(token); + + if (verifyToken.getStatusCodeValue() != 200) { + return verifyToken; + } + + Claims claims = (Claims) verifyToken.getBody(); + + ResponseEntity getUser = FinderUtil.findUserFromClaim(claims); + + if (getUser.getStatusCodeValue() != 200) { + return getUser; + } + + User user = (User) getUser.getBody(); + + //Get User_Info + ResponseEntity getUser_Info = FinderUtil.findUser_InfoByID(String.valueOf(user.getId())); + + if (getUser_Info.getStatusCodeValue() != 200) { + return getUser_Info; + } + + User_Info user_info = (User_Info) getUser_Info.getBody(); + //---------------------- + if (user_info.getTeam() != null) { + return ResponseEntity.status(400).body("You already have a team"); + } + + for (Team team : teamRepository.findAll()) { + if (team.getName().equals(name)) { + return ResponseEntity.status(400).body("The teamname is already taken"); + } + } + + Team team = new Team(); + team.setName(name); + teamRepository.save(team); + + user_info.setTeam(team); + user_infoRepository.save(user_info); + + return ResponseEntity.status(200).body(new Gson().toJson(team)); + } + @RequestMapping("/api/hello") public ResponseEntity hello(@RequestParam String name) { return ResponseEntity.status(200).body(userRepository.getRankingPlaceFromUser(name)); diff --git a/src/main/java/hhn/labsw/bugageocaching/entities/Team.java b/src/main/java/hhn/labsw/bugageocaching/entities/Team.java index d4dd2c2..935929f 100644 --- a/src/main/java/hhn/labsw/bugageocaching/entities/Team.java +++ b/src/main/java/hhn/labsw/bugageocaching/entities/Team.java @@ -13,7 +13,6 @@ public class Team { private int id; private String name; - private int rankingPoints; public int getId() { return id; @@ -30,12 +29,4 @@ public class Team { public void setName(String name) { this.name = name; } - - public int getRankingPoints() { - return rankingPoints; - } - - public void setRankingPoints(int rankingPoints) { - this.rankingPoints = rankingPoints; - } } From a7223a49cb47e7ec3038621c78d748a649bafeb5 Mon Sep 17 00:00:00 2001 From: rchrist Date: Thu, 25 Apr 2019 13:55:27 +0200 Subject: [PATCH 04/62] finished user story Registrierung --- frontend/src/pages/Register.vue | 43 ++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 12 deletions(-) diff --git a/frontend/src/pages/Register.vue b/frontend/src/pages/Register.vue index efb2487..6a80aa9 100644 --- a/frontend/src/pages/Register.vue +++ b/frontend/src/pages/Register.vue @@ -7,14 +7,14 @@
+ label="Nutzername eingeben" :rules="[val=>val.length>=2||'Name muss mindestens 2 Zeichen lang sein!']"/>
- +
@@ -22,7 +22,7 @@
+ label="Email erneut eingeben" placeholer="Email" :rules="[val=>val===user.email||'Email stimmt nicht überein']"/>
@@ -30,7 +30,7 @@
+ label="Passwort eingeben" :rules="[val=>val.length>=8||'Passwort muss mindestens 8 Zeichen lang sein!']"/>
@@ -38,7 +38,7 @@
+ label="Passwort erneut eingeben" :rules="[val=>val===user.password||'Passwort stimmt nicht überein']"/>
@@ -46,6 +46,7 @@
=2 + &&this.validateEmail(this.user.email) + &&this.user.email===this.user.checkemail + &&this.user.password.length>=8 + &&this.user.password===this.user.checkpassword){ + return true; + } + return false; + } + }, methods: { + validateEmail(email) { + var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + return re.test(String(email).toLowerCase()); + }, register: function () { - this.login(); - console.log(localStorage.getItem('registerToken')); if(this.user.email===this.user.checkemail&&this.user.password===this.user.checkpassword){ this.login(); const data = { @@ -94,13 +109,17 @@ }; console.log("POST /api/register/ - json: " + JSON.stringify(data)); - - this.$axios.post('http://www.se.hs-heilbronn.de:8090/buga19usermanagement/account/register', data) + const token = JSON.parse(localStorage.getItem('registerToken')).token; + this.$axios.post('http://www.se.hs-heilbronn.de:8090/buga19usermanagement/account/register', data,{ + headers: { + 'Authorization': 'Bearer ' + token, + } + }) .then((response) => { - console.log("POST /api/login/ - response: "); console.log(response.data); - console.log("TOKEN"); - console.log(response.data.token); + if(response.status === 201){ + this.$store.commit('dialog/NEW_MESSAGE_DIALOG', { message: "Deine Registrierung war erfolgreich!", title: "Registrierungsprozess", color: "blue"}); + } }) .catch((error) => { let message; From b10226b5b92b885af13fc357dc5f61b05a2e6fdc Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 25 Apr 2019 14:22:43 +0200 Subject: [PATCH 05/62] added joinTeam --- .../bugageocaching/controller/Controller.java | 48 +++++++++++++++++++ .../labsw/bugageocaching/util/FinderUtil.java | 9 ++++ 2 files changed, 57 insertions(+) diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index 076e4e4..a98e143 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -473,6 +473,54 @@ public class Controller { return ResponseEntity.status(200).body(new Gson().toJson(team)); } + @CrossOrigin(origins = "http://localhost:8081") // only for dev purpose + @RequestMapping("/api/joinTeam") + @ResponseBody + public ResponseEntity joinTeam(@RequestParam String token, + @RequestParam String teamID) { + ResponseEntity verifyToken = VerificationUtil.verifyToken(token); + + if (verifyToken.getStatusCodeValue() != 200) { + return verifyToken; + } + + Claims claims = (Claims) verifyToken.getBody(); + + ResponseEntity getUser = FinderUtil.findUserFromClaim(claims); + + if (getUser.getStatusCodeValue() != 200) { + return getUser; + } + + User user = (User) getUser.getBody(); + + //Get User_Info + ResponseEntity getUser_Info = FinderUtil.findUser_InfoByID(String.valueOf(user.getId())); + + if (getUser_Info.getStatusCodeValue() != 200) { + return getUser_Info; + } + + User_Info user_info = (User_Info) getUser_Info.getBody(); + //---------------------- + if (user_info.getTeam() != null) { + return ResponseEntity.status(400).body("You already have a team"); + } + + //Get team + ResponseEntity getTeam = FinderUtil.findTeamById(teamID); + + if (getTeam.getStatusCodeValue() != 200) { + return getTeam; + } + + Team team = (Team) getTeam.getBody(); + + user_info.setTeam(team); + + return ResponseEntity.status(200).body(team); + } + @RequestMapping("/api/hello") public ResponseEntity hello(@RequestParam String name) { return ResponseEntity.status(200).body(userRepository.getRankingPlaceFromUser(name)); diff --git a/src/main/java/hhn/labsw/bugageocaching/util/FinderUtil.java b/src/main/java/hhn/labsw/bugageocaching/util/FinderUtil.java index 37f81a1..4b4c595 100644 --- a/src/main/java/hhn/labsw/bugageocaching/util/FinderUtil.java +++ b/src/main/java/hhn/labsw/bugageocaching/util/FinderUtil.java @@ -152,4 +152,13 @@ public class FinderUtil { } } + public static ResponseEntity findTeamById(String teamID) { + Optional teamOptional = teamRepository.findById(Integer.valueOf(teamID)); + if (teamOptional.isPresent()) { + return ResponseEntity.status(200).body(teamOptional.get()); + } else { + return ResponseEntity.status(404).body("Couldnt find User_Info " + teamID); + } + } + } From 5e10ffbe1bc50e9ccb45e88faf4122fa0e0c80cf Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 25 Apr 2019 14:26:14 +0200 Subject: [PATCH 06/62] fixed a bug --- .../java/hhn/labsw/bugageocaching/controller/Controller.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index a98e143..764a265 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -518,6 +518,8 @@ public class Controller { user_info.setTeam(team); + user_infoRepository.save(user_info); + return ResponseEntity.status(200).body(team); } From e81338dd38ff05c70f6c4b807a59354eb3c95be8 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 25 Apr 2019 14:33:58 +0200 Subject: [PATCH 07/62] more bugfixes --- .../labsw/bugageocaching/controller/Controller.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index 764a265..06702d4 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -516,6 +516,18 @@ public class Controller { Team team = (Team) getTeam.getBody(); + int i = 0; + + for (User_Info userInfo1 : user_infoRepository.findAll()) { + if (userInfo1.getTeam().equals(team)) { + i++; + } + } + + if (i >= 10) { + return ResponseEntity.status(400).body("The team already has 10 members"); + } + user_info.setTeam(team); user_infoRepository.save(user_info); From ccba1fcab18c85379a3dc59875e36fa4a0188d28 Mon Sep 17 00:00:00 2001 From: Maximilian Leopold Date: Fri, 26 Apr 2019 19:38:58 +0200 Subject: [PATCH 08/62] Fixed RankingPoints Vue --- build.gradle | 2 +- .../labsw/bugageocaching/controller/Controller.java | 3 ++- .../bugageocaching/helper/RankingListHelper.java | 13 +++++++++---- .../bugageocaching/repositories/UserRepository.java | 2 +- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/build.gradle b/build.gradle index 90a4591..e1cfe7a 100644 --- a/build.gradle +++ b/build.gradle @@ -40,7 +40,7 @@ dependencies { compile 'org.springframework.boot:spring-boot-starter-tomcat' //compile 'org.springframework.boot:spring-boot-starter-security' - //compile 'org.springframework.boot:spring-boot-starter-actuator' + compile 'org.springframework.boot:spring-boot-starter-actuator' //compile 'org.springframework.boot:spring-boot-starter-aop' //ompile group: 'org.springframework.boot', name: 'spring-boot-starter-mail', version: '1.2.0.RELEASE' diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index 06702d4..493d66a 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -389,7 +389,8 @@ public class Controller { List sendBackUsers = new LinkedList<>(); List rankingUsers = userRepository.getRankingList(); for (Object[] obj : rankingUsers) { - RankingListHelper tmp = new RankingListHelper((String) obj[1], (int) obj[2]); + RankingListHelper tmp = new RankingListHelper((String) obj[1], (Integer) obj[2]); + System.out.println(tmp); sendBackUsers.add(tmp); } return ResponseEntity.status(200).body(new Gson().toJson(sendBackUsers)); diff --git a/src/main/java/hhn/labsw/bugageocaching/helper/RankingListHelper.java b/src/main/java/hhn/labsw/bugageocaching/helper/RankingListHelper.java index 13f474a..9e3b2b2 100644 --- a/src/main/java/hhn/labsw/bugageocaching/helper/RankingListHelper.java +++ b/src/main/java/hhn/labsw/bugageocaching/helper/RankingListHelper.java @@ -3,11 +3,11 @@ package hhn.labsw.bugageocaching.helper; public class RankingListHelper { private String username; - private int ranking_Points; + private int rankingPointsSum; public RankingListHelper(String username, int ranking_Points) { this.username = username; - this.ranking_Points = ranking_Points; + this.rankingPointsSum = ranking_Points; } public String getUsername() { @@ -19,10 +19,15 @@ public class RankingListHelper { } public int getRanking_Points() { - return ranking_Points; + return rankingPointsSum; } public void setRanking_Points(int ranking_Points) { - this.ranking_Points = ranking_Points; + this.rankingPointsSum = ranking_Points; + } + + @Override + public String toString() { + return "( " + username + " | " + rankingPointsSum + " )"; } } diff --git a/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java b/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java index b09f2a9..7820046 100644 --- a/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java +++ b/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java @@ -16,7 +16,7 @@ public interface UserRepository extends CrudRepository { "WHERE u.id = ui.user_id\n" + "AND u.id = ur.user_id\n" + "order by ranking_points_sum DESC\n" + - "LIMIT 100;", nativeQuery = true) + "LIMIT 10;", nativeQuery = true) List getRankingList(); @Query(value = "SELECT Rang\n" + From 35ad020c842ab6fdb8a6b0c8b2801cc57630f55f Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 27 Apr 2019 19:48:14 +0200 Subject: [PATCH 09/62] added leaveTeam and added some comments --- .../bugageocaching/controller/Controller.java | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index 493d66a..5c2d6e6 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -429,12 +429,14 @@ public class Controller { @ResponseBody public ResponseEntity createTeam(@RequestParam String token, @RequestParam String name) { + // 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); @@ -458,6 +460,7 @@ public class Controller { return ResponseEntity.status(400).body("You already have a team"); } + // checkt, ob der name bereits vorhanden ist for (Team team : teamRepository.findAll()) { if (team.getName().equals(name)) { return ResponseEntity.status(400).body("The teamname is already taken"); @@ -479,12 +482,14 @@ public class Controller { @ResponseBody public ResponseEntity joinTeam(@RequestParam String token, @RequestParam String teamID) { + // 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); @@ -519,16 +524,19 @@ public class Controller { int i = 0; + // zählt teammitglieder for (User_Info userInfo1 : user_infoRepository.findAll()) { if (userInfo1.getTeam().equals(team)) { i++; } } + // wenn maximalanzahl der teammitglieder erreicht... if (i >= 10) { return ResponseEntity.status(400).body("The team already has 10 members"); } + // tritt dem team bei user_info.setTeam(team); user_infoRepository.save(user_info); @@ -536,6 +544,72 @@ public class Controller { return ResponseEntity.status(200).body(team); } + @CrossOrigin(origins = "http://localhost:8081") // only for dev purpose + @RequestMapping("/api/leaveTeam") + @ResponseBody + public ResponseEntity leaveTeam(@RequestParam String token) { + + // 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 User_Info + ResponseEntity getUser_Info = FinderUtil.findUser_InfoByID(String.valueOf(user.getId())); + + if (getUser_Info.getStatusCodeValue() != 200) { + return getUser_Info; + } + + User_Info user_info = (User_Info) getUser_Info.getBody(); + //---------------------- + if (user_info.getTeam() == null) { + return ResponseEntity.status(400).body("You aren´t in any team"); + } + + //Get team + ResponseEntity getTeam = FinderUtil.findTeamById(String.valueOf(user_info.getTeam().getId())); + + if (getTeam.getStatusCodeValue() != 200) { + return getTeam; + } + + Team team = (Team) getTeam.getBody(); + + // verlässt team + user_info.setTeam(null); + + int i = 0; + // zählt teammitglieder + for (User_Info userInfo1 : user_infoRepository.findAll()) { + if (userInfo1.getTeam().equals(team)) { + i++; + } + } + + // löscht team, wenn keine teammitglieder mehr vorhanden + if (i == 0) { + teamRepository.delete(team); + } + + user_infoRepository.save(user_info); + + return ResponseEntity.status(200).body("Ok"); + } + @RequestMapping("/api/hello") public ResponseEntity hello(@RequestParam String name) { return ResponseEntity.status(200).body(userRepository.getRankingPlaceFromUser(name)); From c4b3c52fea71c9f1fbdf150c215072029c6e4b7f Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 27 Apr 2019 20:12:51 +0200 Subject: [PATCH 10/62] added getTeamRankingList sql query --- .../repositories/UserRepository.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java b/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java index 7820046..8d1bab7 100644 --- a/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java +++ b/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java @@ -35,4 +35,18 @@ public interface UserRepository extends CrudRepository { "WHERE Name = ?1", nativeQuery = true) int getRankingPlaceFromUser(String username); + @Query(value = "SELECT DISTINCT t.name AS teamname, SUM(ui.ranking_points_sum) AS Ranglistenpunkte\n" + + "FROM user u,\n" + + " user_info ui,\n" + + " user_roles ur,\n" + + " team t\n" + + "WHERE u.id = ui.user_id\n" + + " AND u.id = ur.user_id\n" + + " 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" + + "LIMIT 10;", nativeQuery = true) + List getTeamRankingList(); + } From 50f7204cf54669a1a77080877c18a73117873cad Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 27 Apr 2019 20:15:18 +0200 Subject: [PATCH 11/62] added teamRankingListHelper --- .../helper/TeamRankingListHelper.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/main/java/hhn/labsw/bugageocaching/helper/TeamRankingListHelper.java diff --git a/src/main/java/hhn/labsw/bugageocaching/helper/TeamRankingListHelper.java b/src/main/java/hhn/labsw/bugageocaching/helper/TeamRankingListHelper.java new file mode 100644 index 0000000..9a81386 --- /dev/null +++ b/src/main/java/hhn/labsw/bugageocaching/helper/TeamRankingListHelper.java @@ -0,0 +1,34 @@ +package hhn.labsw.bugageocaching.helper; + +public class TeamRankingListHelper { + + private String teamname; + private int rankingPointsSum; + + public TeamRankingListHelper(String teamname, int ranking_Points) { + this.teamname = teamname; + this.rankingPointsSum = ranking_Points; + } + + public String getTeamname() { + return teamname; + } + + public void setTeamname(String teamname) { + this.teamname = teamname; + } + + public int getRanking_Points() { + return rankingPointsSum; + } + + public void setRanking_Points(int ranking_Points) { + this.rankingPointsSum = ranking_Points; + } + + @Override + public String toString() { + return "( " + teamname + " | " + rankingPointsSum + " )"; + } + +} From 1a6fb9d35ec8539af97f6cd117380c34fc90bc9e Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 27 Apr 2019 20:17:24 +0200 Subject: [PATCH 12/62] added a getTeamRankingList API method --- .../bugageocaching/controller/Controller.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index 5c2d6e6..881f78c 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -3,6 +3,7 @@ package hhn.labsw.bugageocaching.controller; import com.google.gson.Gson; import hhn.labsw.bugageocaching.entities.*; import hhn.labsw.bugageocaching.helper.RankingListHelper; +import hhn.labsw.bugageocaching.helper.TeamRankingListHelper; import hhn.labsw.bugageocaching.repositories.*; import hhn.labsw.bugageocaching.util.FinderUtil; import hhn.labsw.bugageocaching.util.VerificationUtil; @@ -396,6 +397,21 @@ public class Controller { return ResponseEntity.status(200).body(new Gson().toJson(sendBackUsers)); } + @CrossOrigin(origins = "http://localhost:8081") // only for dev purpose + @RequestMapping("/api/getTeamRankingList") + @ResponseBody + public ResponseEntity getTeamRankingList() { + + List sendBackTeams = new LinkedList<>(); + List rankingTeams = userRepository.getTeamRankingList(); + for (Object[] obj : rankingTeams) { + TeamRankingListHelper tmp = new TeamRankingListHelper((String) obj[0], (Integer) obj[1]); + System.out.println(tmp); + sendBackTeams.add(tmp); + } + return ResponseEntity.status(200).body(new Gson().toJson(sendBackTeams)); + } + @CrossOrigin(origins = "http://localhost:8081") // only for dev purpose @RequestMapping("/api/getUser") @ResponseBody From c10820d83251471f222b2d7f246ad593c810ea2d Mon Sep 17 00:00:00 2001 From: rchrist Date: Sat, 27 Apr 2019 21:43:23 +0200 Subject: [PATCH 13/62] myProfile and myTeams MOCKUP version added --- frontend/quasar.conf.js | 1 + frontend/src/pages/Profile.vue | 196 +++++++++++++++++++++++++++++---- 2 files changed, 176 insertions(+), 21 deletions(-) diff --git a/frontend/quasar.conf.js b/frontend/quasar.conf.js index 9ee4e06..1ceac6e 100644 --- a/frontend/quasar.conf.js +++ b/frontend/quasar.conf.js @@ -68,6 +68,7 @@ module.exports = function (ctx) { 'QEditor', 'QSelect', 'QField', + 'QBtnDropdown', ], directives: [ diff --git a/frontend/src/pages/Profile.vue b/frontend/src/pages/Profile.vue index d3a76c6..44f4ff8 100644 --- a/frontend/src/pages/Profile.vue +++ b/frontend/src/pages/Profile.vue @@ -1,20 +1,21 @@