From 54e488ac28298c673a28f3076a496f049e163c99 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 29 Apr 2019 10:19:52 +0200 Subject: [PATCH 1/9] added sendTeamInvite API method and all needed database tables --- .../bugageocaching/controller/Controller.java | 68 +++++++++++++++++++ .../bugageocaching/entities/TeamInvite.java | 42 ++++++++++++ .../repositories/TeamInviteRepository.java | 9 +++ .../repositories/UserRepository.java | 2 +- 4 files changed, 120 insertions(+), 1 deletion(-) create mode 100644 src/main/java/hhn/labsw/bugageocaching/entities/TeamInvite.java create mode 100644 src/main/java/hhn/labsw/bugageocaching/repositories/TeamInviteRepository.java diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index 881f78c..f278cd5 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -49,6 +49,9 @@ public class Controller { @Autowired User_InfoRepository user_infoRepository; + @Autowired + TeamInviteRepository teamInviteRepository; + @PostConstruct public void init() { fetchPublicKey(); @@ -626,6 +629,71 @@ public class Controller { return ResponseEntity.status(200).body("Ok"); } + + @CrossOrigin(origins = "http://localhost:8081") // only for dev purpose + @RequestMapping("/api/sendTeamInvite") + @ResponseBody + public ResponseEntity sendTeamInvite(@RequestParam String token, + @RequestParam String invitedUserEmail) { + // 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 InvitedUser + + User invitedUser = userRepository.findByEmail(invitedUserEmail); + + if (invitedUser == null) { + return ResponseEntity.status(404).body("There isnt any user with that email"); + } + //---------------------- + + + //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(); + + TeamInvite teamInvite = new TeamInvite(); + teamInvite.setUser(invitedUser); + teamInvite.setTeam(team); + + teamInviteRepository.save(teamInvite); + + return ResponseEntity.status(200).body("OK"); + } + @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/TeamInvite.java b/src/main/java/hhn/labsw/bugageocaching/entities/TeamInvite.java new file mode 100644 index 0000000..6d25351 --- /dev/null +++ b/src/main/java/hhn/labsw/bugageocaching/entities/TeamInvite.java @@ -0,0 +1,42 @@ +package hhn.labsw.bugageocaching.entities; + +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.OneToOne; + +public class TeamInvite { + + @Id + @GeneratedValue + private int id; + + @OneToOne + private User user; + + @OneToOne + private Team team; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } + + public Team getTeam() { + return team; + } + + public void setTeam(Team team) { + this.team = team; + } +} diff --git a/src/main/java/hhn/labsw/bugageocaching/repositories/TeamInviteRepository.java b/src/main/java/hhn/labsw/bugageocaching/repositories/TeamInviteRepository.java new file mode 100644 index 0000000..42ba9f5 --- /dev/null +++ b/src/main/java/hhn/labsw/bugageocaching/repositories/TeamInviteRepository.java @@ -0,0 +1,9 @@ +package hhn.labsw.bugageocaching.repositories; + +import hhn.labsw.bugageocaching.entities.Cache; +import hhn.labsw.bugageocaching.entities.TeamInvite; +import hhn.labsw.bugageocaching.entities.User; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface TeamInviteRepository extends JpaRepository { +} diff --git a/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java b/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java index 8d1bab7..d8784ec 100644 --- a/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java +++ b/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java @@ -7,7 +7,7 @@ import org.springframework.data.repository.CrudRepository; import java.util.List; public interface UserRepository extends CrudRepository { - User findByUsername(String username); + User findByEmail(String email); @Query(value = "SELECT DISTINCT u.id AS ID, SUBSTRING_INDEX(u.email, '@', 1) AS Name, ui.ranking_points_sum AS Ranglistenpunkte\n" + "FROM user u,\n" + From 06e2b54aef5d6f564964b09d12477c4b423c6fae Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 29 Apr 2019 10:51:49 +0200 Subject: [PATCH 2/9] added getMyTeamInvites API method --- .../bugageocaching/controller/Controller.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index f278cd5..804986f 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -694,6 +694,39 @@ public class Controller { return ResponseEntity.status(200).body("OK"); } + @CrossOrigin(origins = "http://localhost:8081") // only for dev purpose + @RequestMapping("/api/getMyTeamInvites") + @ResponseBody + public ResponseEntity getMyTeamInvites(@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(); + + List teamInvitesList = new ArrayList<>(); + + for(TeamInvite teamInvite : teamInviteRepository.findAll()) { + if(teamInvite.getUser() == user) { + teamInvitesList.add(teamInvite); + } + } + + return ResponseEntity.status(200).body(teamInvitesList); + } + @RequestMapping("/api/hello") public ResponseEntity hello(@RequestParam String name) { return ResponseEntity.status(200).body(userRepository.getRankingPlaceFromUser(name)); From 80510eb4677e9d006b6fd6c3897a28418d60ab27 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 29 Apr 2019 10:58:09 +0200 Subject: [PATCH 3/9] improved sendTeamInvite --- .../bugageocaching/controller/Controller.java | 32 +++++++++++++++++-- .../repositories/TeamInviteRepository.java | 2 ++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index 804986f..c394c38 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -685,6 +685,10 @@ public class Controller { Team team = (Team) getTeam.getBody(); + if(teamInviteRepository.findByUserAndTeam(invitedUser, team) != null) { + return ResponseEntity.status(400).body("The user is already invited to this team"); + } + TeamInvite teamInvite = new TeamInvite(); teamInvite.setUser(invitedUser); teamInvite.setTeam(team); @@ -718,8 +722,8 @@ public class Controller { List teamInvitesList = new ArrayList<>(); - for(TeamInvite teamInvite : teamInviteRepository.findAll()) { - if(teamInvite.getUser() == user) { + for (TeamInvite teamInvite : teamInviteRepository.findAll()) { + if (teamInvite.getUser() == user) { teamInvitesList.add(teamInvite); } } @@ -727,6 +731,30 @@ public class Controller { return ResponseEntity.status(200).body(teamInvitesList); } + @CrossOrigin(origins = "http://localhost:8081") // only for dev purpose + @RequestMapping("/api/deleteTeamInvite") + @ResponseBody + public ResponseEntity deleteTeamInvite(@RequestParam String token, + @RequestParam ) { + // 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(); + } + @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/repositories/TeamInviteRepository.java b/src/main/java/hhn/labsw/bugageocaching/repositories/TeamInviteRepository.java index 42ba9f5..1454dfa 100644 --- a/src/main/java/hhn/labsw/bugageocaching/repositories/TeamInviteRepository.java +++ b/src/main/java/hhn/labsw/bugageocaching/repositories/TeamInviteRepository.java @@ -1,9 +1,11 @@ package hhn.labsw.bugageocaching.repositories; import hhn.labsw.bugageocaching.entities.Cache; +import hhn.labsw.bugageocaching.entities.Team; import hhn.labsw.bugageocaching.entities.TeamInvite; import hhn.labsw.bugageocaching.entities.User; import org.springframework.data.jpa.repository.JpaRepository; public interface TeamInviteRepository extends JpaRepository { + TeamInvite findByUserAndTeam(User user, Team team); } From ac15616e22d7d0dd598e788ee05cd4030db4bdf0 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 29 Apr 2019 11:02:43 +0200 Subject: [PATCH 4/9] added deleteTeamInvite API method --- .../bugageocaching/controller/Controller.java | 20 ++++++++++--------- .../labsw/bugageocaching/util/FinderUtil.java | 16 +++++++++++++++ 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index c394c38..a4f8784 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -685,7 +685,7 @@ public class Controller { Team team = (Team) getTeam.getBody(); - if(teamInviteRepository.findByUserAndTeam(invitedUser, team) != null) { + if (teamInviteRepository.findByUserAndTeam(invitedUser, team) != null) { return ResponseEntity.status(400).body("The user is already invited to this team"); } @@ -735,7 +735,7 @@ public class Controller { @RequestMapping("/api/deleteTeamInvite") @ResponseBody public ResponseEntity deleteTeamInvite(@RequestParam String token, - @RequestParam ) { + @RequestParam String teamInviteID) { // verify user ResponseEntity verifyToken = VerificationUtil.verifyToken(token); @@ -743,16 +743,18 @@ public class Controller { return verifyToken; } - //get User - Claims claims = (Claims) verifyToken.getBody(); + // get teaminvite + ResponseEntity getTeamInvite = FinderUtil.findTeamInviteByID(teamInviteID); - ResponseEntity getUser = FinderUtil.findUserFromClaim(claims); - - if (getUser.getStatusCodeValue() != 200) { - return getUser; + if (getTeamInvite.getStatusCodeValue() != 200) { + return getTeamInvite; } - User user = (User) getUser.getBody(); + TeamInvite teamInvite = (TeamInvite) getTeamInvite.getBody(); + + teamInviteRepository.delete(teamInvite); + + return ResponseEntity.status(200).body("OK"); } @RequestMapping("/api/hello") diff --git a/src/main/java/hhn/labsw/bugageocaching/util/FinderUtil.java b/src/main/java/hhn/labsw/bugageocaching/util/FinderUtil.java index 4b4c595..66e10e1 100644 --- a/src/main/java/hhn/labsw/bugageocaching/util/FinderUtil.java +++ b/src/main/java/hhn/labsw/bugageocaching/util/FinderUtil.java @@ -31,6 +31,8 @@ public class FinderUtil { static User_InfoRepository user_infoRepository; + static TeamInviteRepository teamInviteRepository; + @Autowired public void setCacheRepository(CacheRepository cacheRepository) { @@ -72,6 +74,11 @@ public class FinderUtil { FinderUtil.user_infoRepository = user_infoRepository; } + @Autowired + public void setTeamInviteRepository(TeamInviteRepository teamInviteRepository) { + FinderUtil.teamInviteRepository = teamInviteRepository; + } + public static ResponseEntity findCacheById(String cacheID) { @@ -161,4 +168,13 @@ public class FinderUtil { } } + public static ResponseEntity findTeamInviteByID(String teamInviteID) { + Optional teamInviteOptional = teamInviteRepository.findById(Integer.valueOf(teamInviteID)); + if (teamInviteOptional.isPresent()) { + return ResponseEntity.status(200).body(teamInviteOptional.get()); + } else { + return ResponseEntity.status(404).body("Couldnt find User_Info " + teamInviteID); + } + } + } From ac484e5d0c6ada74cf66d4b5a9ae81e56bac899a Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 29 Apr 2019 11:03:59 +0200 Subject: [PATCH 5/9] removed old unneeded methods --- .../java/hhn/labsw/bugageocaching/util/FinderUtil.java | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/main/java/hhn/labsw/bugageocaching/util/FinderUtil.java b/src/main/java/hhn/labsw/bugageocaching/util/FinderUtil.java index 66e10e1..98b7b6b 100644 --- a/src/main/java/hhn/labsw/bugageocaching/util/FinderUtil.java +++ b/src/main/java/hhn/labsw/bugageocaching/util/FinderUtil.java @@ -111,16 +111,6 @@ public class FinderUtil { return ResponseEntity.status(404).body("The user has not started this cache yet"); } - public static ResponseEntity findUserByUsername(String username) { - - User user = userRepository.findByUsername(username); - if (user != null) { - return ResponseEntity.status(200).body(user); - } - - return ResponseEntity.status(404).body("Couldnt find user with username " + username); - } - public static ResponseEntity findCacheAccesDefinitionById(String cacheAccesDefinitionID) { Optional cacheAccesDefinitionOptional = cacheAccesDefinitionRepository.findById(Integer.valueOf(cacheAccesDefinitionID)); if (cacheAccesDefinitionOptional.isPresent()) { From d9a76e978352d2dfda72a6bc2ef186f103d91f99 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 29 Apr 2019 11:15:24 +0200 Subject: [PATCH 6/9] added teamStatus and setTeamStatus API method --- .../bugageocaching/controller/Controller.java | 52 +++++++++++++++++++ .../labsw/bugageocaching/entities/Team.java | 10 ++++ 2 files changed, 62 insertions(+) diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index a4f8784..5e392f7 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -757,6 +757,58 @@ public class Controller { return ResponseEntity.status(200).body("OK"); } + @CrossOrigin(origins = "http://localhost:8081") // only for dev purpose + @RequestMapping("/api/setTeamStatus") + @ResponseBody + public ResponseEntity setTeamStatus(@RequestParam String token, + @RequestParam String teamStatus) { + // 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(); + team.setTeamStatus(teamStatus); + + teamRepository.save(team); + + return ResponseEntity.status(200).body(teamStatus); + } + + @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 935929f..55b87d4 100644 --- a/src/main/java/hhn/labsw/bugageocaching/entities/Team.java +++ b/src/main/java/hhn/labsw/bugageocaching/entities/Team.java @@ -14,6 +14,8 @@ public class Team { private String name; + private String teamStatus; + public int getId() { return id; } @@ -29,4 +31,12 @@ public class Team { public void setName(String name) { this.name = name; } + + public String getTeamStatus() { + return teamStatus; + } + + public void setTeamStatus(String teamStatus) { + this.teamStatus = teamStatus; + } } From 37af0bb49e5391aa6475e4907fe309e01f90bc8b Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 29 Apr 2019 11:40:29 +0200 Subject: [PATCH 7/9] changed return body to JSON --- .../hhn/labsw/bugageocaching/controller/Controller.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index 5e392f7..528af69 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -560,7 +560,7 @@ public class Controller { user_infoRepository.save(user_info); - return ResponseEntity.status(200).body(team); + return ResponseEntity.status(200).body(new Gson().toJson(team)); } @CrossOrigin(origins = "http://localhost:8081") // only for dev purpose @@ -728,7 +728,7 @@ public class Controller { } } - return ResponseEntity.status(200).body(teamInvitesList); + return ResponseEntity.status(200).body(new Gson().toJson(teamInvitesList)); } @CrossOrigin(origins = "http://localhost:8081") // only for dev purpose @@ -805,7 +805,7 @@ public class Controller { teamRepository.save(team); - return ResponseEntity.status(200).body(teamStatus); + return ResponseEntity.status(200).body(new Gson().toJson(teamStatus)); } From c53fbaf9d51a6e9e5d14e990d5191ba690e31a5e Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 29 Apr 2019 14:44:38 +0200 Subject: [PATCH 8/9] added table annotation for teaminvite --- .../java/hhn/labsw/bugageocaching/entities/TeamInvite.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/hhn/labsw/bugageocaching/entities/TeamInvite.java b/src/main/java/hhn/labsw/bugageocaching/entities/TeamInvite.java index 6d25351..22a3e30 100644 --- a/src/main/java/hhn/labsw/bugageocaching/entities/TeamInvite.java +++ b/src/main/java/hhn/labsw/bugageocaching/entities/TeamInvite.java @@ -1,9 +1,9 @@ package hhn.labsw.bugageocaching.entities; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.OneToOne; +import javax.persistence.*; +@Entity +@Table public class TeamInvite { @Id From 565bf98432a39eb8826a5ca39bb6e138473f8ad7 Mon Sep 17 00:00:00 2001 From: Maximilian Leopold Date: Mon, 29 Apr 2019 19:48:32 +0200 Subject: [PATCH 9/9] Added some team methods --- .../bugageocaching/controller/Controller.java | 12 ++ .../repositories/TeamRepository.java | 20 +++ .../labsw/bugageocaching/util/FinderUtil.java | 124 +++++++++++------- 3 files changed, 109 insertions(+), 47 deletions(-) diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index 528af69..ec97905 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -808,6 +808,18 @@ public class Controller { return ResponseEntity.status(200).body(new Gson().toJson(teamStatus)); } + @RequestMapping("/api/getTeam") + public ResponseEntity getTeam(@RequestParam String name){ + ResponseEntity responseEntity = FinderUtil.findTeamByName(name); + + return responseEntity; + } + + @RequestMapping("/api/getTeamMembers") + public ResponseEntity getTeamMembers(@RequestParam String name){ + return FinderUtil.findTeammemberByTeamName(name); + } + @RequestMapping("/api/hello") public ResponseEntity hello(@RequestParam String name) { diff --git a/src/main/java/hhn/labsw/bugageocaching/repositories/TeamRepository.java b/src/main/java/hhn/labsw/bugageocaching/repositories/TeamRepository.java index 77c69d9..9390a7c 100644 --- a/src/main/java/hhn/labsw/bugageocaching/repositories/TeamRepository.java +++ b/src/main/java/hhn/labsw/bugageocaching/repositories/TeamRepository.java @@ -1,8 +1,28 @@ package hhn.labsw.bugageocaching.repositories; import hhn.labsw.bugageocaching.entities.Team; +import hhn.labsw.bugageocaching.entities.User; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; +import java.util.List; + public interface TeamRepository extends JpaRepository { + + Team findByName(String name); + + @Query(value = "SELECT *\n" + + "FROM user\n" + + "WHERE id = (\n" + + " SELECT user_id\n" + + " FROM user_info\n" + + " WHERE team_id = (SELECT team_id\n" + + " FROM team\n" + + " WHERE name = ?1\n" + + " )\n" + + ")", nativeQuery = true) + List getTeammembers(String name); + + } diff --git a/src/main/java/hhn/labsw/bugageocaching/util/FinderUtil.java b/src/main/java/hhn/labsw/bugageocaching/util/FinderUtil.java index 98b7b6b..a79d112 100644 --- a/src/main/java/hhn/labsw/bugageocaching/util/FinderUtil.java +++ b/src/main/java/hhn/labsw/bugageocaching/util/FinderUtil.java @@ -10,6 +10,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Component; +import java.util.LinkedList; +import java.util.List; import java.util.Optional; @Component @@ -33,53 +35,6 @@ public class FinderUtil { static TeamInviteRepository teamInviteRepository; - - @Autowired - public void setCacheRepository(CacheRepository cacheRepository) { - FinderUtil.cacheRepository= cacheRepository; - } - - @Autowired - public void setRewardRepository(RewardRepository rewardRepository) { - FinderUtil.rewardRepository = rewardRepository; - } - - @Autowired - public void setStationRepository(StationRepository stationRepository) { - FinderUtil.stationRepository = stationRepository; - } - - @Autowired - public void setBearbeitetRepository(BearbeitetRepository bearbeitetRepository) { - FinderUtil.bearbeitetRepository = bearbeitetRepository; - } - - @Autowired - public void setCacheAccesDefinitionRepository(CacheAccesDefinitionRepository cacheAccesDefinitionRepository) { - FinderUtil.cacheAccesDefinitionRepository = cacheAccesDefinitionRepository; - } - - @Autowired - public void setTeamRepository(TeamRepository teamRepository) { - FinderUtil.teamRepository = teamRepository; - } - - @Autowired - public void setUserRepository(UserRepository userRepository) { - FinderUtil.userRepository = userRepository; - } - - @Autowired - public void setUser_infoRepository(User_InfoRepository user_infoRepository) { - FinderUtil.user_infoRepository = user_infoRepository; - } - - @Autowired - public void setTeamInviteRepository(TeamInviteRepository teamInviteRepository) { - FinderUtil.teamInviteRepository = teamInviteRepository; - } - - public static ResponseEntity findCacheById(String cacheID) { Optional cacheOptional = cacheRepository.findById(Integer.valueOf(cacheID)); @@ -167,4 +122,79 @@ public class FinderUtil { } } + public static ResponseEntity findTeamByName(String name) { + + Team team = teamRepository.findByName(name); + if (team != null) { + return ResponseEntity.status(200).body(team); + } else { + return ResponseEntity.status(404).body("Couldnt find Team with name " + name); + } } + + public static ResponseEntity findTeammemberByTeamName(String name) { + + List list = teamRepository.getTeammembers(name); + if (list != null) { + + List sendBack = new LinkedList<>(); + + for (Object[] obj : + list) { + User tmp = new User(); + tmp.setUsername((String) obj[3]); + sendBack.add(tmp); + } + + return ResponseEntity.status(200).body(sendBack); + } else { + return ResponseEntity.status(404).body("Couldnt find Team member of Team " + name); + } + } + + @Autowired + public void setCacheRepository(CacheRepository cacheRepository) { + FinderUtil.cacheRepository = cacheRepository; + } + + @Autowired + public void setRewardRepository(RewardRepository rewardRepository) { + FinderUtil.rewardRepository = rewardRepository; + } + + @Autowired + public void setStationRepository(StationRepository stationRepository) { + FinderUtil.stationRepository = stationRepository; + } + + @Autowired + public void setBearbeitetRepository(BearbeitetRepository bearbeitetRepository) { + FinderUtil.bearbeitetRepository = bearbeitetRepository; + } + + @Autowired + public void setCacheAccesDefinitionRepository(CacheAccesDefinitionRepository cacheAccesDefinitionRepository) { + FinderUtil.cacheAccesDefinitionRepository = cacheAccesDefinitionRepository; + } + + @Autowired + public void setTeamRepository(TeamRepository teamRepository) { + FinderUtil.teamRepository = teamRepository; + } + + @Autowired + public void setUserRepository(UserRepository userRepository) { + FinderUtil.userRepository = userRepository; + } + + @Autowired + public void setUser_infoRepository(User_InfoRepository user_infoRepository) { + FinderUtil.user_infoRepository = user_infoRepository; + } + + @Autowired + public void setTeamInviteRepository(TeamInviteRepository teamInviteRepository) { + FinderUtil.teamInviteRepository = teamInviteRepository; + } + +}