Skip to content

Commit

Permalink
Merge pull request #78 from SWEET-DEVELOPERS/feature/#77-room
Browse files Browse the repository at this point in the history
[fix] ์„ ๋ฌผ๋ฐฉ ์ฐธ์—ฌ์ž ์ƒ์„ธ ์กฐํšŒ ์ˆ˜์ •
  • Loading branch information
hysong4u authored Jan 16, 2024
2 parents b9ae3bb + c64f480 commit c72dbfd
Show file tree
Hide file tree
Showing 6 changed files with 64 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,8 @@ public ResponseEntity<SuccessResponse<?>> modifyRoomGifteeName(@UserId Long user

@GetMapping("/{roomId}/members")
public ResponseEntity<SuccessResponse<?>> getRoomMembers(@UserId Long userId, @PathVariable Long roomId) {
final RoomMembersResponseDto roomMembersResponseDto = roomService.getRoomMembers(userId, roomId);
return SuccessResponse.ok(roomMembersResponseDto);
final RoomMemberDetailDto roomMemberDetailDto = roomService.getRoomMembers(userId, roomId);
return SuccessResponse.ok(roomMemberDetailDto);
}

@DeleteMapping("/{roomId}/members/{memberId}")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package org.sopt.sweet.domain.room.dto.response;

import lombok.Builder;

@Builder
public record OwnerDto(
Long ownerId,
String profileImageUrl,
String name
) {
public static OwnerDto of(Long myId, String profileImageUrl, String name) {
return OwnerDto.builder()
.ownerId(myId)
.profileImageUrl(profileImageUrl)
.name(name)
.build();
}
}
17 changes: 17 additions & 0 deletions src/main/java/org/sopt/sweet/domain/room/dto/response/RoomDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.sopt.sweet.domain.room.dto.response;

import lombok.Builder;

@Builder
public record RoomDto(
String gifteeName,
int gifterNumber

) {
public static RoomDto of(String gifteeName, int gifterNumber) {
return RoomDto.builder()
.gifteeName(gifteeName)
.gifterNumber(gifterNumber)
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package org.sopt.sweet.domain.room.dto.response;

import lombok.Builder;

import java.util.List;

@Builder
public record RoomMemberDetailDto(
RoomDto room,
OwnerDto owner,
List<RoomMemberDto> members
) {
public static RoomMemberDetailDto of(RoomDto roomDto, OwnerDto ownerDto, List<RoomMemberDto> roomMemberDtoList) {
return RoomMemberDetailDto.builder()
.room(roomDto)
.owner(ownerDto)
.members(roomMemberDtoList)
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,5 @@ public interface RoomMemberRepository extends JpaRepository<RoomMember, Long> {

Optional<RoomMember> findByMemberIdAndRoom(Long memberId, Room room);


}
Original file line number Diff line number Diff line change
Expand Up @@ -145,13 +145,15 @@ public void modifyRoomGifteeName(Long memberId, Long roomId, RoomNameRequestDto
}

@Transactional(readOnly = true)
public RoomMembersResponseDto getRoomMembers(Long memberId, Long roomId) {
public RoomMemberDetailDto getRoomMembers(Long memberId, Long roomId) {
Member member = findMemberByIdOrThrow(memberId);
Room room = findByIdOrThrow(roomId);
checkRoomHost(member, room);
List<RoomMember> roomMembers = roomMemberRepository.findByRoomId(roomId);
List<RoomMemberDto> roomMemberDtoList = mapToRoomMemberDtoList(roomMembers);
return RoomMembersResponseDto.of(memberId, room.getGifterNumber(), roomMemberDtoList);
RoomDto roomDto = new RoomDto(room.getGifteeName(), room.getGifterNumber());
OwnerDto ownerDto = new OwnerDto(room.getHost().getId(), room.getHost().getProfileImg(),room.getHost().getNickName());
return RoomMemberDetailDto.of(roomDto, ownerDto, roomMemberDtoList);
}

public void deleteRoomMember(Long memberId, Long roomId, Long deleteMemberId) {
Expand All @@ -166,7 +168,9 @@ public void deleteRoomMember(Long memberId, Long roomId, Long deleteMemberId) {
}

private List<RoomMemberDto> mapToRoomMemberDtoList(List<RoomMember> roomMembers) {
Long hostId = roomMembers.get(0).getRoom().getHost().getId();
return roomMembers.stream()
.filter(roomMember -> !roomMember.getMember().getId().equals(hostId))
.map(this::mapToRoomMemberDto)
.collect(Collectors.toList());
}
Expand Down

0 comments on commit c72dbfd

Please sign in to comment.