From 80510eb4677e9d006b6fd6c3897a28418d60ab27 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 29 Apr 2019 10:58:09 +0200 Subject: [PATCH] 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); }