added sendTeamInvite API method and all needed database tables
This commit is contained in:
parent
1a6fb9d35e
commit
54e488ac28
@ -49,6 +49,9 @@ public class Controller {
|
|||||||
@Autowired
|
@Autowired
|
||||||
User_InfoRepository user_infoRepository;
|
User_InfoRepository user_infoRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
TeamInviteRepository teamInviteRepository;
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void init() {
|
public void init() {
|
||||||
fetchPublicKey();
|
fetchPublicKey();
|
||||||
@ -626,6 +629,71 @@ public class Controller {
|
|||||||
return ResponseEntity.status(200).body("Ok");
|
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")
|
@RequestMapping("/api/hello")
|
||||||
public ResponseEntity hello(@RequestParam String name) {
|
public ResponseEntity hello(@RequestParam String name) {
|
||||||
return ResponseEntity.status(200).body(userRepository.getRankingPlaceFromUser(name));
|
return ResponseEntity.status(200).body(userRepository.getRankingPlaceFromUser(name));
|
||||||
|
|||||||
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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<TeamInvite, Integer> {
|
||||||
|
}
|
||||||
@ -7,7 +7,7 @@ import org.springframework.data.repository.CrudRepository;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public interface UserRepository extends CrudRepository<User, Integer> {
|
public interface UserRepository extends CrudRepository<User, Integer> {
|
||||||
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" +
|
@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 user u,\n" +
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user