Skip to content

Commit 18338fd

Browse files
committed
Feat: 채팅 로직 수정
1 parent 566ab4a commit 18338fd

File tree

4 files changed

+13
-11
lines changed

4 files changed

+13
-11
lines changed

src/main/java/cmf/commitField/domain/chat/chatRoom/controller/ChatRoomController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public GlobalResponse<Object> getByUserRoomList(Pageable pageable) {
7878
CustomOAuth2User principal = (CustomOAuth2User) authentication.getPrincipal();
7979
Long userId = principal.getId(); // getId()를 통해 userId를 추출
8080

81-
List<ChatRoomDto> userByRoomList = chatRoomService.getUserByRoomList(userId, pageable);
81+
List<ChatRoomDto> userByRoomList = chatRoomService.roomsByCreatorUser(userId, pageable);
8282

8383
// 방 리스트가 비어 있으면 notFound 응답 반환
8484
if (userByRoomList.isEmpty()) {

src/main/java/cmf/commitField/domain/chat/chatRoom/repository/ChatRoomRepository.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public interface ChatRoomRepository extends JpaRepository<ChatRoom, Long> {
2828

2929
Page<ChatRoom> findAllByUserChatRoomsUserId(Long userId,Pageable pageable);
3030

31-
@Query(value = "SELECT ROOM_CREATOR FROM chat_room WHERE ID = ?", nativeQuery = true)
32-
Long findChatRoomByRoomCreator(Long roomId);
31+
@Query(value = "SELECT ROOM_CREATOR FROM chat_room WHERE CHAT_ROOM_ID = ?", nativeQuery = true)
32+
Optional<Long> findChatRoomIdByRoomId(@Param("roomId") Long roomId);
3333

3434
}

src/main/java/cmf/commitField/domain/chat/chatRoom/service/ChatRoomService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public interface ChatRoomService {
1616
List<ChatRoomDto> getRoomList(Pageable pageable);
1717

1818
// 자신이 생성한 방 리스트 조회
19-
List<ChatRoomDto> getUserByRoomList(Long userId, Pageable pageable);
19+
List<ChatRoomDto> roomsByCreatorUser(Long userId, Pageable pageable);
2020

2121
List<ChatRoomDto> getUserByRoomPartList(Long userId, Pageable pageable);
2222

src/main/java/cmf/commitField/domain/chat/chatRoom/service/ChatRoomServiceImpl.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ public List<ChatRoomDto> getRoomList(Pageable pageable) {
121121
// 자신이 생성한 방 리스트 조회
122122
@Override
123123
@Transactional(readOnly = true)
124-
public List<ChatRoomDto> getUserByRoomList(Long userId, Pageable pageable) {
124+
public List<ChatRoomDto> roomsByCreatorUser(Long userId, Pageable pageable) {
125125
Page<ChatRoom> all = chatRoomRepository.findAllByUserId(userId, pageable);
126126
return getChatRoomDtos(all);
127127
}
@@ -138,10 +138,11 @@ public List<ChatRoomDto> getUserByRoomPartList(Long userId, Pageable pageable) {
138138
@Override
139139
@Transactional
140140
public void outRoom(Long userId, Long roomId) {
141-
Long roomCreatorId = chatRoomRepository
142-
.findChatRoomByRoomCreator(roomId);
141+
ChatRoom room = chatRoomRepository
142+
.findChatRoomById(roomId)
143+
.orElseThrow(() -> new CustomException(ErrorCode.NO_ROOM_FOUND));
143144
// 방장이 아니라면
144-
if (!Objects.equals(roomCreatorId, userId)) {
145+
if (!Objects.equals(room.getRoomCreator(), userId)) {
145146
userChatRoomRepository.deleteUserChatRoomByChatRoom_IdAndUserId(roomId, userId);
146147
return;
147148
}
@@ -156,10 +157,11 @@ public void outRoom(Long userId, Long roomId) {
156157
@Override
157158
@Transactional
158159
public void deleteRoom(Long userId, Long roomId) {
159-
Long roomCreatorId = chatRoomRepository
160-
.findChatRoomByRoomCreator(roomId);
160+
ChatRoom room = chatRoomRepository
161+
.findChatRoomById(roomId)
162+
.orElseThrow(() -> new CustomException(ErrorCode.NONE_ROOM));
161163
//방장이 아닐 경우, 삭제 불가
162-
if (!Objects.equals(roomCreatorId, userId)) {
164+
if (!Objects.equals(room.getRoomCreator(), userId)) {
163165
throw new CustomException(ErrorCode.NOT_ROOM_CREATOR);
164166
}
165167
//모든 사용자 제거 후 방 삭제

0 commit comments

Comments
 (0)