Skip to content

Commit

Permalink
Merge pull request #99 from Team-Shaka/refactor/85
Browse files Browse the repository at this point in the history
[REFACTOR]/#85 - Converter와 ResponseDTO들 리팩토링
  • Loading branch information
CYY1007 committed Apr 10, 2024
2 parents 9221109 + af48b8d commit a2cbdc5
Show file tree
Hide file tree
Showing 13 changed files with 71 additions and 61 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,15 @@ public ApiResponse inviteMember(
return ApiResponse.onSuccess("");
}

@PostMapping("/trees/members/invitation/accept")
@PostMapping("/treehouses/members/invitation/accept")
@Operation(summary = "초대 수락", description = "받은 초대를 수락합니다.")
public ApiResponse<InvitationResponseDTO.acceptInvitation> acceptInvitation(
@RequestBody final InvitationRequestDTO.acceptInvitation request
) {
return ApiResponse.onSuccess(invitationService.acceptInvitation(request));
}

@PostMapping("/trees/members/invitation/reject")
@PostMapping("/treehouses/members/invitation/reject")
@Operation(summary = "초대 거절", description = "받은 초대를 거절합니다.")
public ApiResponse<InvitationResponseDTO.rejectInvitation> rejectInvitation(
@RequestBody final InvitationRequestDTO.rejectInvitation request
Expand All @@ -53,10 +53,10 @@ public ApiResponse<InvitationResponseDTO.rejectInvitation> rejectInvitation(

@GetMapping("/users/invitation")
@Operation(summary = "초대장 조회", description = "내가 받은 초대장을 조회합니다.")
public ApiResponse<List<InvitationResponseDTO.getInvitation>> getInvitation(
public ApiResponse<InvitationResponseDTO.getInvitations> getInvitations(
@AuthMember @Parameter(hidden = true) Member member
) {
return ApiResponse.onSuccess(invitationService.getInvitation(member));
return ApiResponse.onSuccess(invitationService.getInvitations(member));
}

@GetMapping("/users/availableInvitation")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,14 @@ public InvitationResponseDTO.sendInvitation toInviteUser (Invitation savedInvita

public InvitationResponseDTO.acceptInvitation toAcceptInvitation (Invitation invitation) {
return InvitationResponseDTO.acceptInvitation.builder()
.treeId(invitation.getTree().getId())
.treehouseId(invitation.getTree().getId())
.isAccepted(true)
.build();
}

public InvitationResponseDTO.rejectInvitation toRejectInvitation (Invitation invitation) {
return InvitationResponseDTO.rejectInvitation.builder()
.treeId(invitation.getTree().getId())
.treehouseId(invitation.getTree().getId())
.isAccepted(false)
.build();
}
Expand All @@ -60,4 +60,10 @@ public InvitationResponseDTO.getInvitation toGetInvitation (Invitation invitatio
.treehouseMemberProfileImages(treeMemberProfileImages)
.build();
}

public InvitationResponseDTO.getInvitations toGetInvitations(List<InvitationResponseDTO.getInvitation> invitationDtos) {
return InvitationResponseDTO.getInvitations.builder()
.invitations(invitationDtos)
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ public class InvitationRequestDTO {
@Getter
public static class sendInvitation {
private Long senderId;
private Long treeId;
private Long treehouseId;
private String phoneNumber;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public static class sendInvitation {
@NoArgsConstructor
@AllArgsConstructor
public static class acceptInvitation {
private Long treeId;
private Long treehouseId;
private Boolean isAccepted;
}

Expand All @@ -30,7 +30,7 @@ public static class acceptInvitation {
@NoArgsConstructor
@AllArgsConstructor
public static class rejectInvitation {
private Long treeId;
private Long treehouseId;
private Boolean isAccepted;
}

Expand All @@ -47,6 +47,14 @@ public static class getInvitation {
private List<String> treehouseMemberProfileImages;
}

@Builder
@Getter
@NoArgsConstructor
@AllArgsConstructor
public static class getInvitations {
List<InvitationResponseDTO.getInvitation> invitations;
}

@Builder
@Getter
@NoArgsConstructor
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@


import lombok.RequiredArgsConstructor;
import org.example.tree.domain.branch.service.BranchService;
import org.example.tree.domain.invitation.converter.InvitationConverter;
import org.example.tree.domain.invitation.dto.InvitationRequestDTO;
import org.example.tree.domain.invitation.dto.InvitationResponseDTO;
Expand All @@ -18,7 +17,6 @@
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;

Expand All @@ -37,7 +35,7 @@ public class InvitationService {
public InvitationResponseDTO.sendInvitation inviteUser(InvitationRequestDTO.sendInvitation request) {
Member member = memberQueryService.findById(request.getSenderId());
member.decreaseInvitationCount();
Tree tree = treeQueryService.findById(request.getTreeId());
Tree tree = treeQueryService.findById(request.getTreehouseId());
Profile sender = profileQueryService.getTreeProfile(member, tree);
Invitation invitation = invitationConverter.toInvitation(sender, tree, request.getPhoneNumber());
Optional<Member> optionalMember = memberQueryService.findByPhoneNumber(request.getPhoneNumber());
Expand Down Expand Up @@ -78,9 +76,9 @@ public InvitationResponseDTO.getAvailableInvitation getAvailableInvitation(Membe
}

@Transactional
public List<InvitationResponseDTO.getInvitation> getInvitation(Member member) {
List<Invitation> invitations= invitationQueryService.findAllByPhone(member.getPhone());
return invitations.stream()
public InvitationResponseDTO.getInvitations getInvitations(Member member) {
List<Invitation> invitations = invitationQueryService.findAllByPhone(member.getPhone());
List<InvitationResponseDTO.getInvitation> invitationDtos = invitations.stream()
.map(invitation -> {
Tree tree = invitation.getTree(); // Invitation에서 Tree 정보를 가져옵니다.
List<Profile> treeMembers = profileQueryService.findTreeMembers(tree); // Tree의 모든 멤버를 조회합니다.
Expand All @@ -89,11 +87,13 @@ public List<InvitationResponseDTO.getInvitation> getInvitation(Member member) {
List<String> randomProfileImages = treeMembers.stream()
.map(Profile::getProfileImageUrl)
.limit(3) // 최대 3명
.collect(Collectors.toList());
.toList();

// toGetInvitation 메소드를 수정하여, 선택된 멤버의 profileImage 정보를 포함시켜야 합니다.
return invitationConverter.toGetInvitation(invitation, randomProfileImages);
})
.collect(Collectors.toList());

return invitationConverter.toGetInvitations(invitationDtos);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ public class MemberController {
private final MemberService memberService;


@PostMapping("/checkId")
@Operation(summary = "아이디 중복 체크", description = "서비스에서 사용할 고유 ID를 중복 체크합니다.")
@PostMapping("/checkName")
@Operation(summary = "아이디 중복 체크", description = "서비스에서 사용할 유저이름을 중복 체크합니다.")
public ApiResponse<MemberResponseDTO.checkName> checkName(
@RequestBody final MemberRequestDTO.checkName request
) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public static Member toMemberSecurity(String id){
return staticMemberQueryService.findById(Long.valueOf(id));
}

public Member toMember (String userName, String phone) {
public static Member toMember (String userName, String phone) {
return Member.builder()
.userName(userName)
.phone(phone)
Expand All @@ -40,21 +40,21 @@ public Member toMember (String userName, String phone) {
.build();
}

public MemberResponseDTO.checkName toCheckName(Boolean isDuplicated) {
public static MemberResponseDTO.checkName toCheckName(Boolean isDuplicated) {
return MemberResponseDTO.checkName.builder()
.isDuplicated(isDuplicated)
.build();
}

public MemberResponseDTO.registerMember toRegister(Member member, String accessToken, String refreshToken) {
public static MemberResponseDTO.registerMember toRegister(Member member, String accessToken, String refreshToken) {
return MemberResponseDTO.registerMember.builder()
.userId(member.getId())
.accessToken(accessToken)
.refreshToken(refreshToken)
.build();
}

public MemberResponseDTO.reissue toReissue(String accessToken, String refreshToken) {
public static MemberResponseDTO.reissue toReissue(String accessToken, String refreshToken) {
return MemberResponseDTO.reissue.builder()
.accessToken(accessToken)
.refreshToken(refreshToken)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ public class MemberService {
@Transactional
public MemberResponseDTO.checkName checkName(MemberRequestDTO.checkName request) {
Optional<Member> optionalMember = memberQueryService.checkName(request.getUserName());
Boolean isDuplicate = optionalMember.isPresent();
return memberConverter.toCheckName(isDuplicate);
Boolean isDuplicated = optionalMember.isPresent();
return memberConverter.toCheckName(isDuplicated);
}
@Transactional
public MemberResponseDTO.registerMember register(MemberRequestDTO.registerMember request) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,23 +18,25 @@
public class ProfileController {
private final ProfileService profileService;

@PostMapping("/trees/owner/register")
@Operation(summary = "트리하우스 설립자 프로필 등록", description = "트리하우스 오너 프로필을 등록합니다.")
public ApiResponse registerTreeOwner(
@RequestBody ProfileRequestDTO.ownerProfile request
@PostMapping("/treehouses/owner/register")
@Operation(summary = "트리하우스 설립자 등록", description = "트리하우스의 설립자(Owner)로 등록합니다.")
public ApiResponse registerTreehouseOwner(
@RequestBody ProfileRequestDTO.ownerProfile request,
@AuthMember @Parameter(hidden = true) Member member
) throws Exception {
return ApiResponse.onSuccess(profileService.ownerProfile(request));
return ApiResponse.onSuccess(profileService.ownerProfile(request, member));
}

@PostMapping("/trees/members/register")
@Operation(summary = "트리하우스 멤버 프로필 등록", description = "트리하우스 멤버 프로필을 등록합니다.")
public ApiResponse registerTreeMember(
@RequestBody ProfileRequestDTO.createProfile request
@PostMapping("/treehouses/members/register")
@Operation(summary = "트리하우스 멤버 가입", description = "트리하우스의 멤버로 등록합니다.")
public ApiResponse registerTreehouseMember(
@RequestBody ProfileRequestDTO.createProfile request,
@AuthMember @Parameter(hidden = true) Member member
) throws Exception {
return ApiResponse.onSuccess(profileService.createProfile(request));
return ApiResponse.onSuccess(profileService.createProfile(request, member));
}

@GetMapping("/trees/{treeId}/members/{profileId}") //프로필 조회
@GetMapping("/treehouses/{treeId}/members/{profileId}") //프로필 조회
@Operation(summary = "멤버 프로필 조회", description = "트리하우스 속 특정 멤버의 프로필을 조회합니다.")
public ApiResponse getProfileDetails(
@AuthMember @Parameter(hidden = true) Member member,
Expand All @@ -43,7 +45,7 @@ public ApiResponse getProfileDetails(
return ApiResponse.onSuccess(profileService.getProfileDetails(member, profileId));
}

@GetMapping("/trees/{treeId}/myProfile") //내 프로필 조회
@GetMapping("/treehouses/{treeId}/myProfile") //내 프로필 조회
@Operation(summary = "내 프로필 조회", description = "트리하우스 속 내 프로필을 조회합니다.")
public ApiResponse getMyProfile(
@AuthMember @Parameter(hidden = true) Member member,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

@Component
public class ProfileConverter {
public Profile toProfile (Tree tree, Member member, String memberName, String bio, String profileImageUrl) {
public static Profile toProfile (Tree tree, Member member, String memberName, String bio, String profileImageUrl) {
return Profile.builder()
.tree(tree)
.member(member)
Expand All @@ -22,16 +22,14 @@ public Profile toProfile (Tree tree, Member member, String memberName, String bi
.build();
}

public ProfileResponseDTO.createProfile toCreateProfile(Profile profile) {
public static ProfileResponseDTO.createProfile toCreateProfile(Profile profile) {
return ProfileResponseDTO.createProfile.builder()
.profileId(profile.getId())
.treeId(profile.getTree().getId())
.memberName(profile.getMemberName())
.profileImageUrl(profile.getProfileImageUrl())
.userId(profile.getMember().getId())
.treehouseId(profile.getTree().getId())
.build();
}

public ProfileResponseDTO.getProfileDetails toGetProfileDetails(Profile profile, List<Long> treeIds, int branchDegree) {
public static ProfileResponseDTO.getProfileDetails toGetProfileDetails(Profile profile, List<Long> treeIds, int branchDegree) {
return ProfileResponseDTO.getProfileDetails.builder()
.profileId(profile.getId())
.treeIds(treeIds)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,20 @@
public class ProfileRequestDTO {
@Getter
public static class createProfile {
private Long treeId;
private Long userId;
private Long treehouseId;
private String userName;
private String memberName;
private String profileImage;
private String profileImageURL;
private String bio;

}

@Getter
public static class ownerProfile {
private Long treeId;
private Long userId;
private Long treehouseId;
private String userName;
private String memberName;
private String profileImage;
private String profileImageURL;
private String bio;

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,8 @@ public class ProfileResponseDTO {
@NoArgsConstructor
@AllArgsConstructor
public static class createProfile {
private Long profileId;
private Long treeId;
private String memberName;
private String profileImageUrl;
private Long userId;
private Long treehouseId;
}

@Builder
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,16 +33,15 @@ public class ProfileService {
private final InvitationQueryService invitationQueryService;

@Transactional
public ProfileResponseDTO.createProfile createProfile(ProfileRequestDTO.createProfile request) throws Exception {
Tree tree = treeQueryService.findById(request.getTreeId());
Member member = memberQueryService.findById(request.getUserId());
public ProfileResponseDTO.createProfile createProfile(ProfileRequestDTO.createProfile request, Member member) throws Exception {
Tree tree = treeQueryService.findById(request.getTreehouseId());
boolean isNewUser = profileQueryService.isNewUser(member);
if (!isNewUser) {
Profile currentProfile = profileQueryService.getCurrentProfile(member);
currentProfile.inactivate();
profileCommandService.updateProfile(currentProfile);
}
String profileImageUrl = request.getProfileImage() == null ? DEFAULT_PROFILE_IMAGE : request.getProfileImage();
String profileImageUrl = request.getProfileImageURL() == null ? DEFAULT_PROFILE_IMAGE : request.getProfileImageURL();
Profile newProfile = profileConverter.toProfile(tree, member, request.getMemberName(), request.getBio(), profileImageUrl);
profileCommandService.createProfile(newProfile);
tree.increaseTreeSize();
Expand All @@ -53,16 +52,15 @@ public ProfileResponseDTO.createProfile createProfile(ProfileRequestDTO.createPr
}

@Transactional
public ProfileResponseDTO.createProfile ownerProfile(ProfileRequestDTO.ownerProfile request) throws Exception {
Tree tree = treeQueryService.findById(request.getTreeId());
Member member = memberQueryService.findById(request.getUserId());
public ProfileResponseDTO.createProfile ownerProfile(ProfileRequestDTO.ownerProfile request, Member member) throws Exception {
Tree tree = treeQueryService.findById(request.getTreehouseId());
boolean isNewUser = profileQueryService.isNewUser(member);
if (!isNewUser) {
Profile currentProfile = profileQueryService.getCurrentProfile(member);
currentProfile.inactivate();
profileCommandService.updateProfile(currentProfile);
}
String profileImageUrl = request.getProfileImage() == null ? DEFAULT_PROFILE_IMAGE : request.getProfileImage();
String profileImageUrl = request.getProfileImageURL() == null ? DEFAULT_PROFILE_IMAGE : request.getProfileImageURL();
Profile newProfile = profileConverter.toProfile(tree, member, request.getMemberName(), request.getBio(), profileImageUrl);
profileCommandService.createProfile(newProfile);
tree.increaseTreeSize();
Expand Down

0 comments on commit a2cbdc5

Please sign in to comment.