diff --git a/src/main/java/goormthon/team28/startup_valley/controller/TeamController.java b/src/main/java/goormthon/team28/startup_valley/controller/TeamController.java index 2fe2161..2cc10ef 100644 --- a/src/main/java/goormthon/team28/startup_valley/controller/TeamController.java +++ b/src/main/java/goormthon/team28/startup_valley/controller/TeamController.java @@ -33,6 +33,15 @@ public ResponseDto retrieveTeam(@UserId Long userId, @PathVariable Long teams return ResponseDto.ok(teamService.retrieveTeam(userId, teamsId)); } + @GetMapping("/members/{membersId}/teams/{teamsId}") + public ResponseDto retrieveTeam( + @UserId Long userId, + @PathVariable Long membersId, + @PathVariable Long teamsId + ) { + return ResponseDto.ok(teamService.retrieveMemberIdTeam(userId, membersId, teamsId)); + } + @GetMapping("/teams/{teamsId}/leader") public ResponseDto listTeamMemberPermission(@UserId Long userId, @PathVariable Long teamsId) { return ResponseDto.ok(teamService.listTeamMemberPermission(userId, teamsId)); diff --git a/src/main/java/goormthon/team28/startup_valley/service/MemberService.java b/src/main/java/goormthon/team28/startup_valley/service/MemberService.java index 3ce6dd8..f35cc08 100644 --- a/src/main/java/goormthon/team28/startup_valley/service/MemberService.java +++ b/src/main/java/goormthon/team28/startup_valley/service/MemberService.java @@ -130,7 +130,7 @@ public MemberContributionDto retrieveContributionMember(Long userId, Long member return MemberContributionDto.of( targetMember.getTotalMinute(), - targetMember.getPart(), + targetMember.getPart() != null ? targetMember.getPart() : EPart.UNSELECTED, targetMember.getPeerReviewSummary(), targetMember.getIsPublic(), scrumContributionDtoList diff --git a/src/main/java/goormthon/team28/startup_valley/service/TeamService.java b/src/main/java/goormthon/team28/startup_valley/service/TeamService.java index 45aba77..bf38184 100644 --- a/src/main/java/goormthon/team28/startup_valley/service/TeamService.java +++ b/src/main/java/goormthon/team28/startup_valley/service/TeamService.java @@ -171,6 +171,36 @@ public TeamSummaryDto retrieveTeam(Long userId, Long teamsId) { ); } + public TeamSummaryDto retrieveMemberIdTeam(Long userId, Long membersId, Long teamsId) { + + User currentUser = userRepository.findById(userId) + .orElseThrow(() -> new CommonException(ErrorCode.NOT_FOUND_USER)); + Team team = teamRepository.findById(teamsId). + orElseThrow(() -> new CommonException(ErrorCode.NOT_FOUND_TEAM)); + Member targetMember = memberRepository.findById(membersId) + .orElseThrow(() -> new CommonException(ErrorCode.NOT_FOUND_MEMBER)); + + // Target Member와 로그인 한 유저가 연관이 있는지 검증 로직 + User targetUser = targetMember.getUser(); + List targetMemberList = memberRepository.findAllByUser(targetUser); + List currentMemberList = memberRepository.findAllByUser(currentUser); + boolean isLoginUserAndTargetAreAssociated = false; + for (Member tempTargetMember : targetMemberList) + for (Member tempCurrentMember : currentMemberList) + if (tempTargetMember.getTeam().equals(tempCurrentMember.getTeam())) { + isLoginUserAndTargetAreAssociated = true; + break; + } + if (!isLoginUserAndTargetAreAssociated) + throw new CommonException(ErrorCode.NOT_ASSOCIATE_LOGIN_USER_AND_TARGET_MEMBER); + return TeamSummaryDto.of( + team.getId(), + team.getName(), + team.getTeamImage(), + team.getStartAt() + ); + } + public TeamMemberPermissionListDto listTeamMemberPermission(Long userId, Long teamsId) { User currentUser = userRepository.findById(userId)