-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
…dd-delete Feature/#91 teammember add delete
- Loading branch information
Showing
13 changed files
with
192 additions
and
27 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
14 changes: 13 additions & 1 deletion
14
src/main/java/com/codiary/backend/global/converter/TeamMemberConverter.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
12 changes: 10 additions & 2 deletions
12
src/main/java/com/codiary/backend/global/repository/TeamMemberRepository.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,12 @@ | ||
package com.codiary.backend.global.repository; | ||
|
||
public interface TeamMemberRepository { | ||
} | ||
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; | ||
|
||
import java.util.Optional; | ||
|
||
public interface TeamMemberRepository extends JpaRepository<TeamMember, Long> { | ||
Optional<TeamMember> findByTeamAndMember(Team team, Member member); | ||
} |
9 changes: 9 additions & 0 deletions
9
...n/java/com/codiary/backend/global/service/TeamMemberService/TeamMemberCommandService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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); | ||
} |
54 changes: 52 additions & 2 deletions
54
...va/com/codiary/backend/global/service/TeamMemberService/TeamMemberCommandServiceImpl.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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); | ||
} | ||
} |
3 changes: 3 additions & 0 deletions
3
src/main/java/com/codiary/backend/global/service/TeamService/TeamQueryService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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); | ||
} |
21 changes: 20 additions & 1 deletion
21
src/main/java/com/codiary/backend/global/service/TeamService/TeamQueryServiceImpl.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,23 @@ | ||
package com.codiary.backend.global.service.TeamService; | ||
|
||
public class TeamQueryServiceImpl { | ||
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; | ||
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 TeamConverter.toTeamCheckResponseDTO(team); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
32 changes: 31 additions & 1 deletion
32
src/main/java/com/codiary/backend/global/web/controller/TeamMemberController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,34 @@ | ||
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.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.*; | ||
|
||
@RequiredArgsConstructor | ||
@RestController | ||
@RequestMapping("/teams") | ||
public class TeamMemberController { | ||
} | ||
|
||
private final TeamMemberCommandService teamMemberCommandService; | ||
|
||
@PostMapping("/add") | ||
@Operation(summary = "팀원 추가") | ||
public ApiResponse<TeamMemberResponseDTO.TeamMemberDTO> 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<Void> removeMember(@RequestBody TeamMemberRequestDTO.RemoveMemberDTO request) { | ||
teamMemberCommandService.removeMember(request); | ||
return ApiResponse.onSuccess(SuccessStatus.TEAM_OK, null); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters