Skip to content

Commit

Permalink
Merge pull request #22 from sanikani/main
Browse files Browse the repository at this point in the history
[Feat] : 사용자 채팅 기능 구현
  • Loading branch information
sanikani authored Jun 29, 2024
2 parents 11a2322 + 65fc295 commit fc8e34c
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.HP028.chatbot.chat.controller;

import com.HP028.chatbot.chat.dto.ChatMessageDto;
import com.HP028.chatbot.chat.dto.SendChatMessageRequest;
import com.HP028.chatbot.chat.dto.SendChatMessageResponse;
import com.HP028.chatbot.chat.service.ChatMessageService;
Expand All @@ -9,6 +10,8 @@
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequiredArgsConstructor
@RequestMapping("/api/chat")
Expand All @@ -20,4 +23,9 @@ public class ChatMessageController {
public ResponseEntity<ApiResponse<SendChatMessageResponse>> sendAndReceiveMessage(@RequestBody SendChatMessageRequest request) {
return ApiResponse.success(ApiSuccessStatus.MESSAGE_SEND_AND_RECEIVE_SUCCESS,chatMessageService.sendMessage(request));
}

@GetMapping("/{chatRoomId}")
public ResponseEntity<ApiResponse<List<ChatMessageDto>>> getChatMessages(@PathVariable Long chatRoomId){
return ApiResponse.success(ApiSuccessStatus.RETRIEVE_SUCCESS, chatMessageService.getChatMessages(chatRoomId));
}
}
20 changes: 20 additions & 0 deletions src/main/java/com/HP028/chatbot/chat/dto/ChatMessageDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.HP028.chatbot.chat.dto;

import com.HP028.chatbot.chat.domain.SenderType;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

@Getter
@AllArgsConstructor
@NoArgsConstructor
public class ChatMessageDto {

private String chatMessage;

private SenderType senderType;

private LocalDateTime timestamp;
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.HP028.chatbot.chat.service;

import com.HP028.chatbot.chat.domain.ChatMessage;
import com.HP028.chatbot.chat.dto.ChatMessageDto;
import com.HP028.chatbot.chat.dto.SendChatMessageRequest;
import com.HP028.chatbot.chat.dto.LLMMessageResponse;
import com.HP028.chatbot.chat.dto.SendChatMessageResponse;
Expand All @@ -10,10 +11,15 @@
import com.HP028.chatbot.common.response.ApiFailStatus;
import com.HP028.chatbot.exception.NotFoundException;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.stream.Collectors;

@Service
@RequiredArgsConstructor
@Slf4j
public class ChatMessageService {

private final ChatMessageRepository chatMessageRepository;
Expand All @@ -37,4 +43,16 @@ public SendChatMessageResponse sendMessage(SendChatMessageRequest request) {

return new SendChatMessageResponse(userMessage.getMessage(), llmMessage.getMessage());
}

public List<ChatMessageDto> getChatMessages(Long chatRoomId){

ChatRoom chatRoom = chatRoomRepository.findById(chatRoomId)
.orElseThrow(() -> new NotFoundException(ApiFailStatus.CHATROOM_NOT_FOUND));

List<ChatMessage> chatMessages = chatRoom.getChatMessages();

return chatMessages.stream()
.map(chatMessage -> new ChatMessageDto(chatMessage.getMessage(), chatMessage.getSenderType(), chatMessage.getTimestamp()))
.collect(Collectors.toList());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,12 @@

import com.HP028.chatbot.chatroom.domain.ChatRoom;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;

import javax.swing.text.html.Option;
import java.util.Optional;

@Repository
public interface ChatRoomRepository extends JpaRepository<ChatRoom, Long> {

Expand Down

0 comments on commit fc8e34c

Please sign in to comment.