From 71c3a9cfe0e40e37919b9e4adb1e5b9a78be9dee Mon Sep 17 00:00:00 2001 From: insa658723 Date: Tue, 6 Aug 2024 01:13:07 +0900 Subject: [PATCH 1/9] =?UTF-8?q?#91=20Fix:=20=ED=8C=80=EC=9B=90=20RequestDT?= =?UTF-8?q?O=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../global/web/controller/TeamController.java | 2 +- .../dto/TeamMember/TeamMemberRequestDTO.java | 24 +++++++------------ 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/codiary/backend/global/web/controller/TeamController.java b/src/main/java/com/codiary/backend/global/web/controller/TeamController.java index b6fe932..ae4db96 100644 --- a/src/main/java/com/codiary/backend/global/web/controller/TeamController.java +++ b/src/main/java/com/codiary/backend/global/web/controller/TeamController.java @@ -46,6 +46,6 @@ public ApiResponse updateTeam( SuccessStatus.TEAM_OK, TeamConverter.toUpdateTeamDTO(updatedTeam)); } - + //팀 팔로우 } diff --git a/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberRequestDTO.java b/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberRequestDTO.java index 503766a..f2906eb 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberRequestDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberRequestDTO.java @@ -1,5 +1,6 @@ package com.codiary.backend.global.web.dto.TeamMember; +import com.codiary.backend.global.domain.enums.MemberRole; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; @@ -10,27 +11,18 @@ public class TeamMemberRequestDTO { @Builder @AllArgsConstructor @NoArgsConstructor - public static class AddTeamMemberRequestDTO { //팀원 추가 - private String name; - private String profilePhoto; - private String intro; - private String github; - private String linkedIn; - private String discord; - private String instagram; + public static class AddTeamMemberDTO { + private Long teamId; + private Long memberId; + private MemberRole memberRole; } @Getter @Builder @AllArgsConstructor @NoArgsConstructor - public static class DeleteMemberRequestDTO { //팀원 삭제 - private String name; - private String profilePhoto; - private String intro; - private String github; - private String linkedIn; - private String discord; - private String instagram; + public static class RemoveTeamMemberDTO { + private Long teamId; + private Long memberId; } } From bb6a0d6cb1296e3eb4a38d11db80726a3aab9902 Mon Sep 17 00:00:00 2001 From: insa658723 Date: Tue, 6 Aug 2024 01:19:59 +0900 Subject: [PATCH 2/9] =?UTF-8?q?#91=20Fix:=20=ED=8C=80=EC=9B=90=20Responset?= =?UTF-8?q?DTO=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/dto/TeamMember/TeamMemberRequestDTO.java | 4 ++-- .../web/dto/TeamMember/TeamMemberResponseDTO.java | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberRequestDTO.java b/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberRequestDTO.java index f2906eb..9733b7e 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberRequestDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberRequestDTO.java @@ -11,7 +11,7 @@ public class TeamMemberRequestDTO { @Builder @AllArgsConstructor @NoArgsConstructor - public static class AddTeamMemberDTO { + public static class AddTeamMemberDTO { //팀원 추가 private Long teamId; private Long memberId; private MemberRole memberRole; @@ -21,7 +21,7 @@ public static class AddTeamMemberDTO { @Builder @AllArgsConstructor @NoArgsConstructor - public static class RemoveTeamMemberDTO { + public static class RemoveTeamMemberDTO { //팀원 삭제 private Long teamId; private Long memberId; } diff --git a/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberResponseDTO.java b/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberResponseDTO.java index ef61b94..fd49d09 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberResponseDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberResponseDTO.java @@ -1,5 +1,6 @@ package com.codiary.backend.global.web.dto.TeamMember; +import com.codiary.backend.global.domain.enums.MemberRole; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; @@ -15,4 +16,15 @@ public static class TeamMemberViewResponseDTO { Long teamMemberId; } + + @Getter + @Builder + @AllArgsConstructor + @NoArgsConstructor + public static class TeamMemberDTO { + private Long teamMemberId; + private Long teamId; + private Long memberId; + private MemberRole memberRole; + } } From e0dd5225b4e08bbb9a5ea5b60292c92176b06bf6 Mon Sep 17 00:00:00 2001 From: insa658723 Date: Tue, 6 Aug 2024 01:26:04 +0900 Subject: [PATCH 3/9] =?UTF-8?q?#91=20Fix:=20=ED=8C=80=EC=9B=90=20converter?= =?UTF-8?q?=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../global/converter/TeamMemberConverter.java | 12 ++++++++++++ .../web/dto/TeamMember/TeamMemberResponseDTO.java | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/codiary/backend/global/converter/TeamMemberConverter.java b/src/main/java/com/codiary/backend/global/converter/TeamMemberConverter.java index 05ee3f7..0565e8a 100644 --- a/src/main/java/com/codiary/backend/global/converter/TeamMemberConverter.java +++ b/src/main/java/com/codiary/backend/global/converter/TeamMemberConverter.java @@ -1,4 +1,16 @@ package com.codiary.backend.global.converter; +import com.codiary.backend.global.domain.entity.mapping.TeamMember; +import com.codiary.backend.global.web.dto.TeamMember.TeamMemberResponseDTO; + public class TeamMemberConverter { + + public static TeamMemberResponseDTO.TeamMemberDTO toTeamMemberDTO(TeamMember teamMember) { + return TeamMemberResponseDTO.TeamMemberDTO.builder() + .teamMemberId(teamMember.getTeamMemberId()) + .teamId(teamMember.getTeam().getTeamId()) + .memberId(teamMember.getMember().getMemberId()) + .memberRole(teamMember.getTeamMemberRole()) + .build(); + } } diff --git a/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberResponseDTO.java b/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberResponseDTO.java index fd49d09..bcebec3 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberResponseDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberResponseDTO.java @@ -21,7 +21,7 @@ public static class TeamMemberViewResponseDTO { @Builder @AllArgsConstructor @NoArgsConstructor - public static class TeamMemberDTO { + public static class TeamMemberDTO { private Long teamMemberId; private Long teamId; private Long memberId; From 5dc0bd573525241d4af32530bb11885b6a9077f3 Mon Sep 17 00:00:00 2001 From: insa658723 Date: Tue, 6 Aug 2024 01:27:53 +0900 Subject: [PATCH 4/9] =?UTF-8?q?#91=20Feat:=20TeamMember=20repository=20?= =?UTF-8?q?=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../global/repository/TeamMemberRepository.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/codiary/backend/global/repository/TeamMemberRepository.java b/src/main/java/com/codiary/backend/global/repository/TeamMemberRepository.java index 11f049d..8a1c762 100644 --- a/src/main/java/com/codiary/backend/global/repository/TeamMemberRepository.java +++ b/src/main/java/com/codiary/backend/global/repository/TeamMemberRepository.java @@ -1,4 +1,12 @@ package com.codiary.backend.global.repository; -public interface TeamMemberRepository { +import com.codiary.backend.global.domain.entity.Member; +import com.codiary.backend.global.domain.entity.Team; +import com.codiary.backend.global.domain.entity.mapping.TeamMember; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.Optional; + +public interface TeamMemberRepository extends JpaRepository { + Optional findByTeamAndMember(Team team, Member member); } From 7c048d28cc410a15005518561af3cc73676c13e2 Mon Sep 17 00:00:00 2001 From: insa658723 Date: Tue, 6 Aug 2024 01:30:53 +0900 Subject: [PATCH 5/9] =?UTF-8?q?#91=20Feat:=20=ED=8C=80=EC=9B=90=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80,=20=EC=82=AD=EC=A0=9C=20Controller=20?= =?UTF-8?q?=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/TeamMemberController.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/main/java/com/codiary/backend/global/web/controller/TeamMemberController.java b/src/main/java/com/codiary/backend/global/web/controller/TeamMemberController.java index e15daa9..f04edbb 100644 --- a/src/main/java/com/codiary/backend/global/web/controller/TeamMemberController.java +++ b/src/main/java/com/codiary/backend/global/web/controller/TeamMemberController.java @@ -1,4 +1,36 @@ package com.codiary.backend.global.web.controller; +import com.codiary.backend.global.apiPayload.ApiResponse; +import com.codiary.backend.global.apiPayload.code.status.SuccessStatus; +import com.codiary.backend.global.converter.TeamMemberConverter; +import com.codiary.backend.global.domain.entity.mapping.TeamMember; +import com.codiary.backend.global.service.TeamMemberService.TeamMemberCommandService; +import com.codiary.backend.global.web.dto.TeamMember.TeamMemberResponseDTO; +import io.swagger.v3.oas.annotations.Operation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RequiredArgsConstructor +@RestController +@RequestMapping("/teams") public class TeamMemberController { + + private final TeamMemberCommandService teamMemberCommandService; + + @PostMapping("/add") + @Operation(summary = "팀원 추가") + public ApiResponse addMember(@RequestBody TeamMemberRequestDTO.AddMemberDTO request) { + TeamMember newMember = teamMemberCommandService.addMember(request); + return ApiResponse.onSuccess(SuccessStatus.TEAM_OK, TeamMemberConverter.toTeamMemberDTO(newMember)); + } + + @DeleteMapping("/delete") + @Operation(summary = "팀원 삭제") + public ApiResponse removeMember(@RequestBody TeamMemberRequestDTO.RemoveMemberDTO request) { + teamMemberCommandService.removeMember(request); + return ApiResponse.onSuccess(SuccessStatus.TEAM_OK, null); + } } From 46c614f920f5affad5b59b1166d4076d98ead258 Mon Sep 17 00:00:00 2001 From: insa658723 Date: Tue, 6 Aug 2024 01:48:52 +0900 Subject: [PATCH 6/9] =?UTF-8?q?#91=20Feat:=20=ED=8C=80=EC=9B=90=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80,=20=EC=82=AD=EC=A0=9C=20Service=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84=EC=B2=B4=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../global/converter/TeamMemberConverter.java | 2 +- .../domain/entity/mapping/TeamMember.java | 2 + .../repository/TeamMemberRepository.java | 4 +- .../TeamMemberCommandService.java | 9 ++++ .../TeamMemberCommandServiceImpl.java | 54 ++++++++++++++++++- .../web/controller/TeamMemberController.java | 8 ++- .../dto/TeamMember/TeamMemberRequestDTO.java | 4 +- 7 files changed, 71 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/codiary/backend/global/converter/TeamMemberConverter.java b/src/main/java/com/codiary/backend/global/converter/TeamMemberConverter.java index 0565e8a..5d13bdf 100644 --- a/src/main/java/com/codiary/backend/global/converter/TeamMemberConverter.java +++ b/src/main/java/com/codiary/backend/global/converter/TeamMemberConverter.java @@ -13,4 +13,4 @@ public static TeamMemberResponseDTO.TeamMemberDTO toTeamMemberDTO(TeamMember tea .memberRole(teamMember.getTeamMemberRole()) .build(); } -} +} \ No newline at end of file diff --git a/src/main/java/com/codiary/backend/global/domain/entity/mapping/TeamMember.java b/src/main/java/com/codiary/backend/global/domain/entity/mapping/TeamMember.java index d054a96..a018925 100644 --- a/src/main/java/com/codiary/backend/global/domain/entity/mapping/TeamMember.java +++ b/src/main/java/com/codiary/backend/global/domain/entity/mapping/TeamMember.java @@ -9,6 +9,8 @@ @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor +@Builder public class TeamMember { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/codiary/backend/global/repository/TeamMemberRepository.java b/src/main/java/com/codiary/backend/global/repository/TeamMemberRepository.java index 8a1c762..1f1173d 100644 --- a/src/main/java/com/codiary/backend/global/repository/TeamMemberRepository.java +++ b/src/main/java/com/codiary/backend/global/repository/TeamMemberRepository.java @@ -1,7 +1,7 @@ package com.codiary.backend.global.repository; -import com.codiary.backend.global.domain.entity.Member; import com.codiary.backend.global.domain.entity.Team; +import com.codiary.backend.global.domain.entity.Member; import com.codiary.backend.global.domain.entity.mapping.TeamMember; import org.springframework.data.jpa.repository.JpaRepository; @@ -9,4 +9,4 @@ public interface TeamMemberRepository extends JpaRepository { Optional findByTeamAndMember(Team team, Member member); -} +} \ No newline at end of file diff --git a/src/main/java/com/codiary/backend/global/service/TeamMemberService/TeamMemberCommandService.java b/src/main/java/com/codiary/backend/global/service/TeamMemberService/TeamMemberCommandService.java index 5877537..bcefc64 100644 --- a/src/main/java/com/codiary/backend/global/service/TeamMemberService/TeamMemberCommandService.java +++ b/src/main/java/com/codiary/backend/global/service/TeamMemberService/TeamMemberCommandService.java @@ -1,4 +1,13 @@ package com.codiary.backend.global.service.TeamMemberService; +import com.codiary.backend.global.domain.entity.mapping.TeamMember; +import com.codiary.backend.global.web.dto.TeamMember.TeamMemberRequestDTO; + public interface TeamMemberCommandService { + + // 팀원 추가 + TeamMember addMember(TeamMemberRequestDTO.AddMemberDTO request); + + // 팀원 삭제 + void removeMember(TeamMemberRequestDTO.RemoveMemberDTO request); } diff --git a/src/main/java/com/codiary/backend/global/service/TeamMemberService/TeamMemberCommandServiceImpl.java b/src/main/java/com/codiary/backend/global/service/TeamMemberService/TeamMemberCommandServiceImpl.java index 614cae9..c379b3e 100644 --- a/src/main/java/com/codiary/backend/global/service/TeamMemberService/TeamMemberCommandServiceImpl.java +++ b/src/main/java/com/codiary/backend/global/service/TeamMemberService/TeamMemberCommandServiceImpl.java @@ -1,4 +1,54 @@ package com.codiary.backend.global.service.TeamMemberService; -public class TeamMemberCommandServiceImpl { -} +import com.codiary.backend.global.domain.entity.Member; +import com.codiary.backend.global.domain.entity.Team; +import com.codiary.backend.global.domain.entity.mapping.TeamMember; +import com.codiary.backend.global.repository.MemberRepository; +import com.codiary.backend.global.repository.TeamMemberRepository; +import com.codiary.backend.global.repository.TeamRepository; +import com.codiary.backend.global.web.dto.TeamMember.TeamMemberRequestDTO; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@RequiredArgsConstructor +@Service +public class TeamMemberCommandServiceImpl implements TeamMemberCommandService { + + private final TeamRepository teamRepository; + private final MemberRepository memberRepository; + private final TeamMemberRepository teamMemberRepository; + + @Override + @Transactional + public TeamMember addMember(TeamMemberRequestDTO.AddMemberDTO request) { + Team team = teamRepository.findById(request.getTeamId()) + .orElseThrow(() -> new IllegalArgumentException("Invalid team ID")); + + Member member = memberRepository.findById(request.getMemberId()) + .orElseThrow(() -> new IllegalArgumentException("Invalid member ID")); + + TeamMember teamMember = TeamMember.builder() + .team(team) + .member(member) + .teamMemberRole(request.getMemberRole()) + .build(); + + return teamMemberRepository.save(teamMember); + } + + @Override + @Transactional + public void removeMember(TeamMemberRequestDTO.RemoveMemberDTO request) { + Team team = teamRepository.findById(request.getTeamId()) + .orElseThrow(() -> new IllegalArgumentException("Invalid team ID")); + + Member member = memberRepository.findById(request.getMemberId()) + .orElseThrow(() -> new IllegalArgumentException("Invalid member ID")); + + TeamMember teamMember = teamMemberRepository.findByTeamAndMember(team, member) + .orElseThrow(() -> new IllegalArgumentException("Team member not found")); + + teamMemberRepository.delete(teamMember); + } +} \ No newline at end of file diff --git a/src/main/java/com/codiary/backend/global/web/controller/TeamMemberController.java b/src/main/java/com/codiary/backend/global/web/controller/TeamMemberController.java index f04edbb..993c5cf 100644 --- a/src/main/java/com/codiary/backend/global/web/controller/TeamMemberController.java +++ b/src/main/java/com/codiary/backend/global/web/controller/TeamMemberController.java @@ -5,13 +5,11 @@ import com.codiary.backend.global.converter.TeamMemberConverter; import com.codiary.backend.global.domain.entity.mapping.TeamMember; import com.codiary.backend.global.service.TeamMemberService.TeamMemberCommandService; +import com.codiary.backend.global.web.dto.TeamMember.TeamMemberRequestDTO; import com.codiary.backend.global.web.dto.TeamMember.TeamMemberResponseDTO; import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RequiredArgsConstructor @RestController @@ -33,4 +31,4 @@ public ApiResponse removeMember(@RequestBody TeamMemberRequestDTO.RemoveMe teamMemberCommandService.removeMember(request); return ApiResponse.onSuccess(SuccessStatus.TEAM_OK, null); } -} +} \ No newline at end of file diff --git a/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberRequestDTO.java b/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberRequestDTO.java index 9733b7e..2b3cab4 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberRequestDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberRequestDTO.java @@ -11,7 +11,7 @@ public class TeamMemberRequestDTO { @Builder @AllArgsConstructor @NoArgsConstructor - public static class AddTeamMemberDTO { //팀원 추가 + public static class AddMemberDTO { private Long teamId; private Long memberId; private MemberRole memberRole; @@ -21,7 +21,7 @@ public static class AddTeamMemberDTO { //팀원 추가 @Builder @AllArgsConstructor @NoArgsConstructor - public static class RemoveTeamMemberDTO { //팀원 삭제 + public static class RemoveMemberDTO { private Long teamId; private Long memberId; } From 4a1ad7335461018ca490dfb39f16be564856f55d Mon Sep 17 00:00:00 2001 From: insa658723 Date: Wed, 7 Aug 2024 16:26:11 +0900 Subject: [PATCH 7/9] =?UTF-8?q?#91=20Fix:=20=ED=8C=80=20=EC=A1=B0=ED=9A=8C?= =?UTF-8?q?=20ResponseDTO=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/dto/TeamMember/TeamMemberResponseDTO.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberResponseDTO.java b/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberResponseDTO.java index bcebec3..e0cde50 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberResponseDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/TeamMember/TeamMemberResponseDTO.java @@ -12,9 +12,14 @@ public class TeamMemberResponseDTO { @Getter @NoArgsConstructor @AllArgsConstructor - public static class TeamMemberViewResponseDTO { - Long teamMemberId; - + public static class TeamCheckResponseDTO { //팀 조회 + private Long teamId; + private String name; + private String intro; + private String profilePhoto; + private String github; + private String email; + private String linkedIn; } @Getter From 3aa7190a4c67cea5b116878032297423ba718afe Mon Sep 17 00:00:00 2001 From: insa658723 Date: Wed, 7 Aug 2024 16:31:01 +0900 Subject: [PATCH 8/9] =?UTF-8?q?#91=20Feat:=20=ED=8C=80=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20=EC=84=9C=EB=B9=84=EC=8A=A4=20=EA=B5=AC=ED=98=84?= =?UTF-8?q?=EC=B2=B4=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/TeamService/TeamQueryService.java | 3 ++ .../TeamService/TeamQueryServiceImpl.java | 28 ++++++++++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/codiary/backend/global/service/TeamService/TeamQueryService.java b/src/main/java/com/codiary/backend/global/service/TeamService/TeamQueryService.java index a027623..d6c6bb6 100644 --- a/src/main/java/com/codiary/backend/global/service/TeamService/TeamQueryService.java +++ b/src/main/java/com/codiary/backend/global/service/TeamService/TeamQueryService.java @@ -1,4 +1,7 @@ package com.codiary.backend.global.service.TeamService; +import com.codiary.backend.global.web.dto.Team.TeamResponseDTO; + public interface TeamQueryService { + TeamResponseDTO.TeamCheckResponseDTO getTeamById(Long teamId); } diff --git a/src/main/java/com/codiary/backend/global/service/TeamService/TeamQueryServiceImpl.java b/src/main/java/com/codiary/backend/global/service/TeamService/TeamQueryServiceImpl.java index 4659568..5e4514a 100644 --- a/src/main/java/com/codiary/backend/global/service/TeamService/TeamQueryServiceImpl.java +++ b/src/main/java/com/codiary/backend/global/service/TeamService/TeamQueryServiceImpl.java @@ -1,4 +1,30 @@ package com.codiary.backend.global.service.TeamService; -public class TeamQueryServiceImpl { +import com.codiary.backend.global.domain.entity.Team; +import com.codiary.backend.global.repository.TeamRepository; +import com.codiary.backend.global.web.dto.Team.TeamResponseDTO; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@RequiredArgsConstructor +@Service +public class TeamQueryServiceImpl implements TeamQueryService { + + private final TeamRepository teamRepository; + + @Override + public TeamResponseDTO.TeamCheckResponseDTO getTeamById(Long teamId) { + Team team = teamRepository.findById(teamId) + .orElseThrow(() -> new IllegalArgumentException("Invalid team ID")); + + return TeamResponseDTO.TeamCheckResponseDTO.builder() + .teamId(team.getTeamId()) + .name(team.getName()) + .intro(team.getIntro()) + .profilePhoto(team.getProfilePhoto()) + .github(team.getGithub()) + .email(team.getEmail()) + .linkedIn(team.getLinkedin()) + .build(); + } } From 68aad9746a6218e330c7c7b8d1686514da92bcb0 Mon Sep 17 00:00:00 2001 From: insa658723 Date: Wed, 7 Aug 2024 17:40:37 +0900 Subject: [PATCH 9/9] =?UTF-8?q?#91=20Feat:=20=ED=8C=80=20=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20=EC=A1=B0=ED=9A=8C=EC=8B=9C=20=ED=8C=80=EC=9B=90=20?= =?UTF-8?q?=EB=AA=A9=EB=A1=9D=20=EC=A1=B0=ED=9A=8C=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backend/global/converter/TeamConverter.java | 12 +++++++++++- .../service/TeamService/TeamQueryServiceImpl.java | 11 ++--------- .../global/web/controller/TeamController.java | 10 ++++++++++ .../backend/global/web/dto/Team/TeamResponseDTO.java | 3 +++ 4 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/codiary/backend/global/converter/TeamConverter.java b/src/main/java/com/codiary/backend/global/converter/TeamConverter.java index 63ee658..55ad26b 100644 --- a/src/main/java/com/codiary/backend/global/converter/TeamConverter.java +++ b/src/main/java/com/codiary/backend/global/converter/TeamConverter.java @@ -2,6 +2,10 @@ import com.codiary.backend.global.domain.entity.Team; import com.codiary.backend.global.web.dto.Team.TeamResponseDTO; +import com.codiary.backend.global.web.dto.TeamMember.TeamMemberResponseDTO; + +import java.util.List; +import java.util.stream.Collectors; public class TeamConverter { //팀생성 @@ -15,14 +19,20 @@ public static TeamResponseDTO.CreateTeamResponseDTO toCreateMemberDTO(Team team) } //팀 조회 - public static TeamResponseDTO.TeamCheckResponseDTO toTeamCheckDTO(Team team) { + public static TeamResponseDTO.TeamCheckResponseDTO toTeamCheckResponseDTO(Team team) { + List members = team.getTeamMemberList().stream() + .map(TeamMemberConverter::toTeamMemberDTO) + .collect(Collectors.toList()); + return TeamResponseDTO.TeamCheckResponseDTO.builder() + .teamId(team.getTeamId()) .name(team.getName()) .intro(team.getIntro()) .profilePhoto(team.getProfilePhoto()) .github(team.getGithub()) .email(team.getEmail()) .linkedIn(team.getLinkedin()) + .members(members) .build(); } diff --git a/src/main/java/com/codiary/backend/global/service/TeamService/TeamQueryServiceImpl.java b/src/main/java/com/codiary/backend/global/service/TeamService/TeamQueryServiceImpl.java index 5e4514a..b438332 100644 --- a/src/main/java/com/codiary/backend/global/service/TeamService/TeamQueryServiceImpl.java +++ b/src/main/java/com/codiary/backend/global/service/TeamService/TeamQueryServiceImpl.java @@ -1,5 +1,6 @@ package com.codiary.backend.global.service.TeamService; +import com.codiary.backend.global.converter.TeamConverter; import com.codiary.backend.global.domain.entity.Team; import com.codiary.backend.global.repository.TeamRepository; import com.codiary.backend.global.web.dto.Team.TeamResponseDTO; @@ -17,14 +18,6 @@ public TeamResponseDTO.TeamCheckResponseDTO getTeamById(Long teamId) { Team team = teamRepository.findById(teamId) .orElseThrow(() -> new IllegalArgumentException("Invalid team ID")); - return TeamResponseDTO.TeamCheckResponseDTO.builder() - .teamId(team.getTeamId()) - .name(team.getName()) - .intro(team.getIntro()) - .profilePhoto(team.getProfilePhoto()) - .github(team.getGithub()) - .email(team.getEmail()) - .linkedIn(team.getLinkedin()) - .build(); + return TeamConverter.toTeamCheckResponseDTO(team); } } diff --git a/src/main/java/com/codiary/backend/global/web/controller/TeamController.java b/src/main/java/com/codiary/backend/global/web/controller/TeamController.java index ae4db96..bf83df7 100644 --- a/src/main/java/com/codiary/backend/global/web/controller/TeamController.java +++ b/src/main/java/com/codiary/backend/global/web/controller/TeamController.java @@ -8,6 +8,7 @@ import com.codiary.backend.global.domain.entity.Team; import com.codiary.backend.global.service.PostService.PostCommandService; import com.codiary.backend.global.service.TeamService.TeamCommandService; +import com.codiary.backend.global.service.TeamService.TeamQueryService; import com.codiary.backend.global.web.dto.Post.PostRequestDTO; import com.codiary.backend.global.web.dto.Post.PostResponseDTO; import com.codiary.backend.global.web.dto.Team.TeamRequestDTO; @@ -22,6 +23,7 @@ public class TeamController { private final TeamCommandService teamCommandService; + private final TeamQueryService teamQueryService; //팀 생성 @PostMapping() @@ -35,6 +37,14 @@ public ApiResponse createTeam( TeamConverter.toCreateMemberDTO(newTeam)); } + //팀 조회 + @GetMapping("/{teamId}") + @Operation(summary = "팀 정보 조회") + public ApiResponse getTeamById(@PathVariable Long teamId) { + TeamResponseDTO.TeamCheckResponseDTO teamInfo = teamQueryService.getTeamById(teamId); + return ApiResponse.onSuccess(SuccessStatus.TEAM_OK, teamInfo); + } + // 팀 프로필 수정 @PatchMapping("/profile/{teamId}") @Operation(summary = "팀 프로필 수정") diff --git a/src/main/java/com/codiary/backend/global/web/dto/Team/TeamResponseDTO.java b/src/main/java/com/codiary/backend/global/web/dto/Team/TeamResponseDTO.java index fb89316..88feaa3 100644 --- a/src/main/java/com/codiary/backend/global/web/dto/Team/TeamResponseDTO.java +++ b/src/main/java/com/codiary/backend/global/web/dto/Team/TeamResponseDTO.java @@ -2,8 +2,10 @@ import com.codiary.backend.global.domain.enums.PostAccess; import com.codiary.backend.global.jwt.TokenInfo; +import com.codiary.backend.global.web.dto.TeamMember.TeamMemberResponseDTO; import lombok.*; +import java.util.List; import java.util.Set; public class TeamResponseDTO { @@ -47,6 +49,7 @@ public static class TeamCheckResponseDTO { // 팀 조회 String github; String email; String linkedIn; + private List members; // 팀원 목록 추가 } @Builder