diff --git a/src/main/java/com/chat/yourway/service/ChatMessageServiceImpl.java b/src/main/java/com/chat/yourway/service/ChatMessageServiceImpl.java index 7b40e510..4de00725 100644 --- a/src/main/java/com/chat/yourway/service/ChatMessageServiceImpl.java +++ b/src/main/java/com/chat/yourway/service/ChatMessageServiceImpl.java @@ -9,6 +9,7 @@ import com.chat.yourway.service.interfaces.ChatMessageService; import com.chat.yourway.service.interfaces.ChatNotificationService; import com.chat.yourway.service.interfaces.ContactEventService; +import com.chat.yourway.service.interfaces.ContactService; import com.chat.yourway.service.interfaces.MessageService; import java.util.List; import lombok.RequiredArgsConstructor; @@ -27,6 +28,7 @@ public class ChatMessageServiceImpl implements ChatMessageService { private final MessageService messageService; private final ContactEventService contactEventService; private final ChatNotificationService chatNotificationService; + private final ContactService contactService; @Transactional @Override @@ -34,6 +36,7 @@ public MessageResponseDto sendToPublicTopic(Integer topicId, MessagePublicReques String email) { log.trace("Started contact email: [{}] sendToTopic id: [{}]", email, topicId); MessageResponseDto messageResponseDto = messageService.createPublic(topicId, message, email); + messageResponseDto.setSentFrom(contactService.findByEmail(email).getNickname()); sendToTopic(topicId, messageResponseDto); @@ -49,6 +52,10 @@ public MessageResponseDto sendToPrivateTopic(Integer topicId, MessagePrivateRequ log.trace("Started contact email: [{}] sendToPrivateTopic email: [{}]", email, sendTo); MessageResponseDto messageResponseDto = messageService.createPrivate(message, email); + messageResponseDto.setSentFrom(contactService.findByEmail(email).getNickname()); + messageResponseDto.setSendTo( + contactService.findByEmail(messageResponseDto.getSendTo()).getNickname()); + sendToTopic(topicId, messageResponseDto); log.trace("Contact [{}] sent message to [{}]", email, sendTo); @@ -60,7 +67,10 @@ public List sendMessageHistoryByTopicId(Integer topicId, PageRequestDto pageRequestDto, String email) { log.trace("Started sendMessageHistoryByTopicId = [{}]", topicId); - List messages = messageService.findAllByTopicId(topicId, pageRequestDto); + List messages = messageService.findAllByTopicId(topicId, pageRequestDto) + .stream() + .peek(m -> m.setSentFrom(contactService.findByEmail(m.getSentFrom()).getNickname())) + .toList(); simpMessagingTemplate.convertAndSendToUser(email, toTopicDestination(topicId), messages); log.trace("Message history was sent to topicId = [{}]", topicId); diff --git a/src/test/java/com/chat/yourway/integration/controller/ChatControllerTest.java b/src/test/java/com/chat/yourway/integration/controller/ChatControllerTest.java index 1131c438..610011c4 100644 --- a/src/test/java/com/chat/yourway/integration/controller/ChatControllerTest.java +++ b/src/test/java/com/chat/yourway/integration/controller/ChatControllerTest.java @@ -125,7 +125,7 @@ void sendToTopic_shouldReturnCorrectSendToPublicTopicAndReceivedMessageFromTopic MessageResponseDto messageResponseDto = resultKeeper.get(3, SECONDS); assertThat(messageResponseDto).isNotNull(); assertThat(messageResponseDto.getId()).isNotNull(); - assertThat(messageResponseDto.getSentFrom()).isEqualTo("vasil@gmail.com"); + assertThat(messageResponseDto.getSentFrom()).isEqualTo("Vasil"); assertThat(messageResponseDto.getSendTo()).isEqualTo("Topic id=" + topicId); assertThat(messageResponseDto.getTimestamp()).isNotNull(); assertThat(messageResponseDto.getContent()).isEqualTo(messageRequestDto.getContent()); @@ -155,8 +155,8 @@ void sendToContact_shouldReturnCorrectReceivedPrivateMessageFromSelfToSelf() { MessageResponseDto messageResponseDto = resultKeeper.get(3, SECONDS); assertThat(messageResponseDto).isNotNull(); assertThat(messageResponseDto.getId()).isNotNull(); - assertThat(messageResponseDto.getSentFrom()).isEqualTo("vasil@gmail.com"); - assertThat(messageResponseDto.getSendTo()).isEqualTo("vasil@gmail.com"); + assertThat(messageResponseDto.getSentFrom()).isEqualTo("Vasil"); + assertThat(messageResponseDto.getSendTo()).isEqualTo("Vasil"); assertThat(messageResponseDto.getTimestamp()).isNotNull(); assertThat(messageResponseDto.getContent()).isEqualTo(messageRequestDto.getContent()); } @@ -185,7 +185,7 @@ void getMessages_shouldReturnReceivedMessagesHistoryFromTopic() { assertThat(messageResponseDtos).extracting("id").isNotNull(); assertThat(messageResponseDtos).extracting("timestamp").isNotNull(); assertThat(messageResponseDtos).extracting("sentFrom") - .contains("anton@gmail.com", "vasil@gmail.com"); + .contains("Anton", "Vasil"); assertThat(messageResponseDtos).extracting("sendTo") .contains("vasil@gmail.com", "anton@gmail.com"); assertThat(messageResponseDtos).extracting("content")