Skip to content

Commit 01e7711

Browse files
authored
Merge branch 'dev' into fix/cd-docker-compose-up-service
2 parents d57959e + f13722c commit 01e7711

File tree

3 files changed

+28
-1
lines changed

3 files changed

+28
-1
lines changed

pennyway-socket/src/main/java/kr/co/pennyway/socket/config/WebSocketMessageBrokerConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public void configureClientOutboundChannel(ChannelRegistration registration) {
7373
@Override
7474
public Message<?> preSend(@NonNull Message<?> message, @NonNull MessageChannel channel) {
7575
StompHeaderAccessor accessor = StompHeaderAccessor.getAccessor(message, StompHeaderAccessor.class);
76-
log.info("Outbound message: {}", accessor);
76+
log.debug("Outbound message: {}", accessor);
7777
return message;
7878
}
7979
});

pennyway-socket/src/main/java/kr/co/pennyway/socket/controller/ChatMessageController.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package kr.co.pennyway.socket.controller;
22

3+
import jakarta.validation.constraints.NotNull;
34
import kr.co.pennyway.socket.command.SendMessageCommand;
45
import kr.co.pennyway.socket.common.annotation.PreAuthorize;
56
import kr.co.pennyway.socket.common.security.authenticate.UserPrincipal;
67
import kr.co.pennyway.socket.dto.ChatMessageDto;
78
import kr.co.pennyway.socket.service.ChatMessageSendService;
9+
import kr.co.pennyway.socket.service.LastMessageIdSaveService;
810
import lombok.RequiredArgsConstructor;
911
import lombok.extern.slf4j.Slf4j;
1012
import org.springframework.messaging.handler.annotation.DestinationVariable;
@@ -17,10 +19,20 @@
1719
@RequiredArgsConstructor
1820
public class ChatMessageController {
1921
private final ChatMessageSendService chatMessageSendService;
22+
private final LastMessageIdSaveService lastMessageIdSaveService;
2023

2124
@MessageMapping("chat.message.{chatRoomId}")
2225
@PreAuthorize("#isAuthenticated(#principal) and @chatRoomAccessChecker.hasPermission(#chatRoomId, #principal)")
2326
public void sendMessage(@DestinationVariable Long chatRoomId, @Validated ChatMessageDto.Request payload, UserPrincipal principal) {
2427
chatMessageSendService.execute(SendMessageCommand.createUserMessage(chatRoomId, payload.content(), payload.contentType(), principal.getUserId()));
2528
}
29+
30+
@MessageMapping("chat.message.{chatRoomId}.read.{lastReadMessageId}")
31+
@PreAuthorize("#isAuthenticated(#principal) and @chatRoomAccessChecker.hasPermission(#chatRoomId, #principal)")
32+
public void readMessage(@DestinationVariable(value = "chatRoomId") @Validated @NotNull Long chatRoomId,
33+
@DestinationVariable(value = "lastReadMessageId") @Validated @NotNull Long lastReadMessageId,
34+
UserPrincipal principal
35+
) {
36+
lastMessageIdSaveService.execute(principal.getUserId(), chatRoomId, lastReadMessageId);
37+
}
2638
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package kr.co.pennyway.socket.service;
2+
3+
import kr.co.pennyway.domain.domains.chatstatus.service.ChatMessageStatusService;
4+
import lombok.RequiredArgsConstructor;
5+
import org.springframework.stereotype.Service;
6+
7+
@Service
8+
@RequiredArgsConstructor
9+
public class LastMessageIdSaveService {
10+
private final ChatMessageStatusService chatMessageStatusService;
11+
12+
public void execute(Long userId, Long chatRoomId, Long lastReadMessageId) {
13+
chatMessageStatusService.saveLastReadMessageId(userId, chatRoomId, lastReadMessageId);
14+
}
15+
}

0 commit comments

Comments
 (0)