From e6779d40493dddb9ad5d1991a261ad7920912ede Mon Sep 17 00:00:00 2001 From: JH Park Date: Sun, 16 Feb 2025 17:27:06 +0900 Subject: [PATCH] =?UTF-8?q?Refactor:=20=ED=8C=80=20=ED=94=84=EB=A1=9C?= =?UTF-8?q?=ED=95=84=20=EC=A1=B0=ED=9A=8C=EC=8B=9C=20=EC=A1=B0=ED=9A=8C?= =?UTF-8?q?=ED=95=9C=20=EC=82=AC=EC=9A=A9=EC=9E=90=EA=B0=80=20=ED=8C=80?= =?UTF-8?q?=EC=9D=98=20ADMIN=EC=9D=B8=EC=A7=80=20=EC=97=AC=EB=B6=80=20?= =?UTF-8?q?=ED=99=95=EC=9D=B8=20=EC=9D=91=EB=8B=B5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backend/domain/team/controller/TeamController.java | 6 +++++- .../backend/domain/team/converter/TeamConverter.java | 4 +++- .../backend/domain/team/dto/response/TeamResponseDTO.java | 2 ++ .../backend/domain/team/service/TeamMemberService.java | 8 ++++++++ 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/codiary/backend/domain/team/controller/TeamController.java b/src/main/java/com/codiary/backend/domain/team/controller/TeamController.java index 0ad968d..8dc2e84 100644 --- a/src/main/java/com/codiary/backend/domain/team/controller/TeamController.java +++ b/src/main/java/com/codiary/backend/domain/team/controller/TeamController.java @@ -12,6 +12,7 @@ import com.codiary.backend.domain.team.entity.TeamBannerImage; import com.codiary.backend.domain.team.entity.TeamMember; import com.codiary.backend.domain.team.entity.TeamProfileImage; +import com.codiary.backend.domain.team.enumerate.TeamMemberRole; import com.codiary.backend.domain.team.service.TeamMemberService; import com.codiary.backend.domain.team.service.TeamService; import com.codiary.backend.global.apiPayload.ApiResponse; @@ -59,7 +60,10 @@ public ApiResponse getTeamProfile( @AuthenticationPrincipal CustomMemberDetails memberDetails ) { Team fetchedTeam = teamService.getTeamProfile(teamId, memberDetails.getId()); - return ApiResponse.onSuccess(SuccessStatus.TEAM_OK, TeamConverter.toTeamProfileResponseDto(fetchedTeam)); + TeamMember currentMember = teamMemberService.getTeamMemberRoleInTeam(teamId, memberDetails.getId()); + boolean isAdmin = currentMember != null && currentMember.getTeamMemberRole() == TeamMemberRole.ADMIN; + + return ApiResponse.onSuccess(SuccessStatus.TEAM_OK, TeamConverter.toTeamProfileResponseDto(fetchedTeam, currentMember, isAdmin)); } @GetMapping("/{team_id}") diff --git a/src/main/java/com/codiary/backend/domain/team/converter/TeamConverter.java b/src/main/java/com/codiary/backend/domain/team/converter/TeamConverter.java index c55f3c7..c11adf9 100644 --- a/src/main/java/com/codiary/backend/domain/team/converter/TeamConverter.java +++ b/src/main/java/com/codiary/backend/domain/team/converter/TeamConverter.java @@ -34,7 +34,7 @@ public static TeamResponseDTO.TeamDTO toTeamResponseDto(Team team) { } //팀 팔로우 여부 구현 후 수정 필요 - public static TeamResponseDTO.TeamProfileDTO toTeamProfileResponseDto(Team team){ + public static TeamResponseDTO.TeamProfileDTO toTeamProfileResponseDto(Team team, TeamMember currentMember, boolean isAdmin){ return TeamResponseDTO.TeamProfileDTO.builder() .teamId(team.getTeamId()) .name(team.getName()) @@ -49,6 +49,8 @@ public static TeamResponseDTO.TeamProfileDTO toTeamProfileResponseDto(Team team) .isFollowed(false) .teamMemberList(team.getTeamMemberList() == null ? null : TeamConverter.toTeamMemberListResponseDTO(team)) + .currentMemberId(currentMember != null ? currentMember.getTeamMemberId() : null) + .isAdmin(isAdmin) .build(); } diff --git a/src/main/java/com/codiary/backend/domain/team/dto/response/TeamResponseDTO.java b/src/main/java/com/codiary/backend/domain/team/dto/response/TeamResponseDTO.java index 96a890d..fbcd129 100644 --- a/src/main/java/com/codiary/backend/domain/team/dto/response/TeamResponseDTO.java +++ b/src/main/java/com/codiary/backend/domain/team/dto/response/TeamResponseDTO.java @@ -52,6 +52,8 @@ public record TeamProfileDTO( String discord, String instagram, Boolean isFollowed, + Long currentMemberId, + Boolean isAdmin, List teamMemberList) {} @JsonInclude(JsonInclude.Include.NON_NULL) diff --git a/src/main/java/com/codiary/backend/domain/team/service/TeamMemberService.java b/src/main/java/com/codiary/backend/domain/team/service/TeamMemberService.java index 8b935ea..d4a1cfc 100644 --- a/src/main/java/com/codiary/backend/domain/team/service/TeamMemberService.java +++ b/src/main/java/com/codiary/backend/domain/team/service/TeamMemberService.java @@ -108,4 +108,12 @@ public List getMemberTeam(Long memberId, Long currentId) { return teamMemberRepository.findByMember(member); } + + public TeamMember getTeamMemberRoleInTeam(Long teamId, Long memberId) { + return teamMemberRepository.findByTeamAndMember( + teamRepository.findById(teamId).orElseThrow(() -> new GeneralException(ErrorStatus.TEAM_NOT_FOUND)), + memberRepository.findById(memberId).orElseThrow(() -> new GeneralException(ErrorStatus.MEMBER_NOT_FOUND)) + ).orElse(null); + } + }