Skip to content

Commit

Permalink
Merge pull request #135 from Re-4aliens/develop
Browse files Browse the repository at this point in the history
2024-07-18 [Release Note]
  • Loading branch information
coke98 authored Jul 27, 2024
2 parents 04e42f8 + 6f97835 commit 8ed2d9e
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ public List<ChatMessageSummary> aggregateMessageSummaries(List<Long> chatRoomIds
AggregationOperation match = Aggregation.match(Criteria.where("roomId").in(chatRoomIds));
AggregationOperation group = Aggregation.group("roomId")
.last("content").as("lastMessageContent")
.last("sendTime").as("lastMessageTime")
.sum(ConditionalOperators.when(Criteria.where("receiverId").is(memberId).and("isRead").is(false)).then(1).otherwise(0)).as("unreadCount");
Aggregation aggregation = Aggregation.newAggregation(match, group);
AggregationResults<ChatMessageSummary> results = mongoTemplate.aggregate(aggregation, "message", ChatMessageSummary.class);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
package com.aliens.backend.chat.service.model;

public record ChatMessageSummary(Long roomId, String lastMessageContent, Long numberOfUnreadMessages) {
import java.util.Date;

public record ChatMessageSummary(Long roomId, String lastMessageContent, Date lastMessageTime, Long numberOfUnreadMessages) {
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.Date;
import java.util.List;

import static org.mockito.ArgumentMatchers.any;
Expand All @@ -36,10 +37,11 @@ void setUp() {
receiver = dummyGenerator.generateSingleMember();;

Message message = Message.of(makeMessageSendRequest());
Date now = new Date();
doReturn(message).when(messageRepository).save(any());
doNothing().when(messageRepository).markMessagesAsRead(any(),any());

ChatMessageSummary summary = new ChatMessageSummary(1L,"g",1L);
ChatMessageSummary summary = new ChatMessageSummary(1L,"this is the last message", now,1L);
List<ChatMessageSummary> givenSummary = List.of(summary,summary) ;
doReturn(givenSummary).when(messageRepository).aggregateMessageSummaries(any(),any());

Expand Down
7 changes: 5 additions & 2 deletions src/test/java/com/aliens/backend/docs/ChatRestDocsTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

import static org.mockito.ArgumentMatchers.any;
Expand Down Expand Up @@ -77,10 +78,11 @@ void getChatSummary() throws Exception {
when(chatRoom2.getStatus()).thenReturn(ChatRoomStatus.OPEN);
chatRooms.add(chatRoom1);
chatRooms.add(chatRoom2);
Date now = new Date();

List<ChatMessageSummary> chatMessageSummaries = List.of(
new ChatMessageSummary(1L, "Last message in Room 1", 5L),
new ChatMessageSummary(2L, "Last message in Room 2", 3L)
new ChatMessageSummary(1L, "Last message in Room 1", now, 5L),
new ChatMessageSummary(2L, "Last message in Room 2", new Date(now.getTime() - 3600000), 3L)
);

ChatSummaryResponse result = new ChatSummaryResponse(chatRooms, chatMessageSummaries);
Expand All @@ -103,6 +105,7 @@ void getChatSummary() throws Exception {
fieldWithPath("result.chatMessageSummaries").description("각 채팅방의 요약 정보"),
fieldWithPath("result.chatMessageSummaries[].roomId").description("채팅방 ID"),
fieldWithPath("result.chatMessageSummaries[].lastMessageContent").description("채팅방의 마지막 메시지 내용"),
fieldWithPath("result.chatMessageSummaries[].lastMessageTime").description("채팅방의 마지막 메시지 시간"),
fieldWithPath("result.chatMessageSummaries[].numberOfUnreadMessages").description("읽지 않은 메시지의 수")
)
));
Expand Down

0 comments on commit 8ed2d9e

Please sign in to comment.