Skip to content

Commit

Permalink
Add ChatMessage service
Browse files Browse the repository at this point in the history
  • Loading branch information
juncevich committed Dec 19, 2023
1 parent 66bb7b6 commit fa5791a
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 0 deletions.
@@ -0,0 +1,24 @@
package com.relay.chatservice.chat;


import lombok.*;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.Date;

@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Document
public class ChatMessage {
@Id
private String id;
private String chatId;
private String senderId;
private String recipientId;
private String content;
private Date timestamp;
}
@@ -0,0 +1,9 @@
package com.relay.chatservice.chat;

import org.springframework.data.mongodb.repository.MongoRepository;

import java.util.List;

public interface ChatMessageRepository extends MongoRepository<ChatMessage, String> {
List<ChatMessage> findByChatId(String chatId);
}
@@ -0,0 +1,40 @@
package com.relay.chatservice.chat;

import com.relay.chatservice.chatroom.ChatRoomService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

@Service
@RequiredArgsConstructor
public class ChatMessageService {
private final ChatMessageRepository chatMessageRepository;
private final ChatRoomService chatRoomService;

public ChatMessage save(ChatMessage chatMessage) {

var chatId = chatRoomService.getChatRoomId(
chatMessage.getSenderId(),
chatMessage.getRecipientId(),
true
).orElseThrow();
chatMessage.setChatId(chatId);
chatMessageRepository.save(chatMessage);
return chatMessage;
}

public List<ChatMessage> findChatMessages(
String senderId,
String recipientId
) {
var chatId = chatRoomService.getChatRoomId(
senderId,
recipientId,
false
);

return chatId.map(chatMessageRepository::findByChatId).orElse(new ArrayList<>());
}
}

0 comments on commit fa5791a

Please sign in to comment.