From 907baf34e804e9bb535ffef4f32543e6215101f0 Mon Sep 17 00:00:00 2001 From: Junhyeok Seo Date: Wed, 2 Oct 2024 09:41:27 +0900 Subject: [PATCH] =?UTF-8?q?#34/feat/=EB=AA=A8=EB=93=A0=EC=B1=84=ED=8C=85?= =?UTF-8?q?=EB=B0=A9=EB=B3=B4=EA=B8=B0=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chat/controller/ChatRoomController.java | 18 ++++++++++++------ .../chat/dto/response/AllChatRoomResponse.java | 6 ++++++ .../com/chat/liveon/chat/entity/ChatRoom.java | 1 + .../liveon/chat/service/ChatRoomService.java | 12 ++++++++++++ 4 files changed, 31 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/chat/liveon/chat/dto/response/AllChatRoomResponse.java diff --git a/src/main/java/com/chat/liveon/chat/controller/ChatRoomController.java b/src/main/java/com/chat/liveon/chat/controller/ChatRoomController.java index eb9f9f4..09693a0 100644 --- a/src/main/java/com/chat/liveon/chat/controller/ChatRoomController.java +++ b/src/main/java/com/chat/liveon/chat/controller/ChatRoomController.java @@ -1,7 +1,7 @@ package com.chat.liveon.chat.controller; -import com.chat.liveon.auth.entity.Person; import com.chat.liveon.chat.dto.request.ChatRoomRequest; +import com.chat.liveon.chat.dto.response.AllChatRoomResponse; import com.chat.liveon.chat.dto.response.ChatRoomResponse; import com.chat.liveon.chat.service.ChatRoomService; import io.swagger.v3.oas.annotations.Operation; @@ -10,10 +10,9 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import java.util.List; @Slf4j @Tag(name = "ChatRoom API", description = "채팅방 API") @@ -25,7 +24,7 @@ public class ChatRoomController { private final ChatRoomService chatRoomService; @PostMapping("/chat-room") - @Operation(summary = "채팅방 생성") + @Operation(summary = "채팅방 생성 API") public ResponseEntity createChatRoom(@RequestBody ChatRoomRequest chatRoomRequest, HttpSession session) { String personId = (String) session.getAttribute("personId"); @@ -33,4 +32,11 @@ public ResponseEntity createChatRoom(@RequestBody ChatRoomRequ ChatRoomResponse response = chatRoomService.createChatRoom(chatRoomRequest, personId); return ResponseEntity.ok(response); } + + @GetMapping("/chat-room") + @Operation(summary = "채팅방 조회 API") + public ResponseEntity> getChatRoom() { + List response = chatRoomService.getAllChatRoom(); + return ResponseEntity.ok(response); + } } diff --git a/src/main/java/com/chat/liveon/chat/dto/response/AllChatRoomResponse.java b/src/main/java/com/chat/liveon/chat/dto/response/AllChatRoomResponse.java new file mode 100644 index 0000000..f94bb92 --- /dev/null +++ b/src/main/java/com/chat/liveon/chat/dto/response/AllChatRoomResponse.java @@ -0,0 +1,6 @@ +package com.chat.liveon.chat.dto.response; + +public record AllChatRoomResponse( + Long chatRoomId, + String chatRoomName +) {} diff --git a/src/main/java/com/chat/liveon/chat/entity/ChatRoom.java b/src/main/java/com/chat/liveon/chat/entity/ChatRoom.java index 11b259f..06e8031 100644 --- a/src/main/java/com/chat/liveon/chat/entity/ChatRoom.java +++ b/src/main/java/com/chat/liveon/chat/entity/ChatRoom.java @@ -12,6 +12,7 @@ public class ChatRoom { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "chat_room_id") private Long id; private String chatRoomName; diff --git a/src/main/java/com/chat/liveon/chat/service/ChatRoomService.java b/src/main/java/com/chat/liveon/chat/service/ChatRoomService.java index 93a6ea7..e66dc25 100644 --- a/src/main/java/com/chat/liveon/chat/service/ChatRoomService.java +++ b/src/main/java/com/chat/liveon/chat/service/ChatRoomService.java @@ -3,6 +3,7 @@ import com.chat.liveon.auth.entity.Person; import com.chat.liveon.auth.repository.PersonRepository; import com.chat.liveon.chat.dto.request.ChatRoomRequest; +import com.chat.liveon.chat.dto.response.AllChatRoomResponse; import com.chat.liveon.chat.dto.response.ChatRoomResponse; import com.chat.liveon.chat.entity.ChatRoom; import com.chat.liveon.chat.repository.ChatMessageRepository; @@ -11,6 +12,9 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.List; +import java.util.stream.Collectors; + @Slf4j @Service public class ChatRoomService { @@ -37,4 +41,12 @@ public ChatRoomResponse createChatRoom(ChatRoomRequest chatRoomRequest, String p log.info("[채팅방 생성 성공] 사용자: {}, 채팅방 명: {}", person, chatRoomRequest.chatRoomName()); return new ChatRoomResponse(chatRoom.getId(), chatRoomRequest.chatRoomName(), personId.getId()); } + + @Transactional(readOnly = true) + public List getAllChatRoom() { + List chatRooms = chatRoomRepository.findAll(); + return chatRooms.stream() + .map(chatRoom -> new AllChatRoomResponse(chatRoom.getId(), chatRoom.getChatRoomName())) + .collect(Collectors.toList()); + } }