diff --git a/src/main/java/com/campick/server/api/chat/controller/ChatController.java b/src/main/java/com/campick/server/api/chat/controller/ChatController.java index c465aab..7dcffab 100644 --- a/src/main/java/com/campick/server/api/chat/controller/ChatController.java +++ b/src/main/java/com/campick/server/api/chat/controller/ChatController.java @@ -35,7 +35,7 @@ public ResponseEntity> startChat(@RequestBody ChatRoomReqDto c } @GetMapping("/{chatRoomId}") - public ResponseEntity>> getChatRoom(@PathVariable Long chatRoomId, + public ResponseEntity>> getChatRoom(@PathVariable Long chatRoomId, @RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "20") Integer size) { Pageable pageable = PageRequest.of(page, size); diff --git a/src/main/java/com/campick/server/api/chat/service/ChatService.java b/src/main/java/com/campick/server/api/chat/service/ChatService.java index 9dbbbdb..c586763 100644 --- a/src/main/java/com/campick/server/api/chat/service/ChatService.java +++ b/src/main/java/com/campick/server/api/chat/service/ChatService.java @@ -113,13 +113,21 @@ public Long startChatRoom(ChatRoomReqDto chatRoomReqDto, Long memberId) { return chatRoom.getId(); } - public ChatRoomPageResDto getChatRoom(Long chatRoomId, Pageable pageable) { + public ChatRoomPageResDto getChatRoom(Long chatRoomId, Pageable pageable) { ChatRoom chatRoom = chatRoomRepository.findDetailById(chatRoomId).orElseThrow( () -> new NotFoundException(ErrorStatus.CHAT_NOT_FOUND.getMessage()) ); Page chatMessages = chatMessageRepository.findByChatRoomIdOrderByCreatedAtDesc(chatRoomId, pageable); + Page chatMessageResDtos = chatMessages.map( + cm -> ChatMessageResDto.builder() + .message(cm.getMessage()) + .senderId(cm.getMember().getId()) + .sendAt(TimeUtil.getTimeAgo(cm.getCreatedAt())) + .isRead(cm.getIsRead()) + .build() + ); - return convertToChatRoomResDto(chatRoom, chatMessages); + return convertToChatRoomResDto(chatRoom, chatMessageResDtos); } public void readChatRoom(Long chatRoomId, Long memberId) { @@ -258,14 +266,14 @@ public void broadcastSoldEvent(WebSocketSession session, JsonNode data) { } } - private ChatRoomPageResDto convertToChatRoomResDto(ChatRoom chatRoom, Page chatMessages) { + private ChatRoomPageResDto convertToChatRoomResDto(ChatRoom chatRoom, Page chatMessages) { String thumbnailImage = chatRoom.getProduct().getImages().stream() .filter(ProductImage::getIsThumbnail) .map(ProductImage::getImageUrl) .findFirst() .orElse(null); - ChatRoomPageResDto chatRoomPageResDto = new ChatRoomPageResDto<>(chatMessages); + ChatRoomPageResDto chatRoomPageResDto = new ChatRoomPageResDto<>(chatMessages); chatRoomPageResDto.setSellerId(chatRoom.getSeller().getId()); chatRoomPageResDto.setSellerNickname(chatRoom.getSeller().getNickname());