From a8b0b1bbb4ba621f081fd0123b811295202e5025 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 25 Apr 2019 12:40:56 +0200 Subject: [PATCH 1/4] 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 b10226b5b92b885af13fc357dc5f61b05a2e6fdc Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 25 Apr 2019 14:22:43 +0200 Subject: [PATCH 2/4] 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 3/4] 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 4/4] 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);