From 88c1c15802df21511de4202402093cfd11320afc Mon Sep 17 00:00:00 2001 From: sohee <144431880+MisaSohee@users.noreply.github.com> Date: Sat, 7 Dec 2024 13:46:48 +0900 Subject: [PATCH] =?UTF-8?q?MATE-107:=20[FEAT]=20=EB=A9=94=EC=9D=B4?= =?UTF-8?q?=ED=8A=B8=20=EC=B1=84=ED=8C=85=EB=B0=A9=20=EB=AA=A9=EB=A1=9D=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=20=EC=8B=9C=20=EC=97=90=EB=9F=AC=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC=20=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80=20(#96)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * MATE-107 : [FEAT] 채팅 목록 조회 시 memberId 에러 처리 로직 추가 * MATE-107 : [FEAT] 채팅방 입장 url chat 중복 수정 --- .../com/example/mate/common/error/ErrorCode.java | 1 + .../controller/MateChatRoomController.java | 14 ++++++++++---- .../mateChat/service/MateChatRoomService.java | 6 ++++++ 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/example/mate/common/error/ErrorCode.java b/src/main/java/com/example/mate/common/error/ErrorCode.java index 36c65b3e..dad30a4e 100644 --- a/src/main/java/com/example/mate/common/error/ErrorCode.java +++ b/src/main/java/com/example/mate/common/error/ErrorCode.java @@ -14,6 +14,7 @@ public enum ErrorCode { AUTH_BAD_REQUEST(HttpStatus.BAD_REQUEST, "A001", "잘못된 인증 요청입니다. 요청 파라미터를 확인해주세요."), AUTH_UNAUTHORIZED(HttpStatus.UNAUTHORIZED, "A002", "인증에 실패했습니다. 유효한 토큰을 제공해주세요."), AUTH_FORBIDDEN(HttpStatus.FORBIDDEN, "A003", "접근 권한이 없습니다. 권한을 확인해주세요."), + UNAUTHORIZED_USER(HttpStatus.UNAUTHORIZED, "A004", "인증되지 않은 사용자입니다"), // Team TEAM_NOT_FOUND(HttpStatus.NOT_FOUND, "T001", "팀을 찾을 수 없습니다"), diff --git a/src/main/java/com/example/mate/domain/mateChat/controller/MateChatRoomController.java b/src/main/java/com/example/mate/domain/mateChat/controller/MateChatRoomController.java index 7dd0a8b0..813a77ce 100644 --- a/src/main/java/com/example/mate/domain/mateChat/controller/MateChatRoomController.java +++ b/src/main/java/com/example/mate/domain/mateChat/controller/MateChatRoomController.java @@ -1,5 +1,7 @@ package com.example.mate.domain.mateChat.controller; +import com.example.mate.common.error.CustomException; +import com.example.mate.common.error.ErrorCode; import com.example.mate.common.response.ApiResponse; import com.example.mate.common.response.PageResponse; import com.example.mate.common.security.auth.AuthMember; @@ -35,21 +37,25 @@ public ResponseEntity<ApiResponse<MateChatRoomResponse>> createOrJoinChatRoomFro } @GetMapping("/me") - @Operation(summary = "내 채팅방 목록 조회", description = "사용자의 채팅방 목록을 조회합니다.") + @Operation(summary = "채팅방 목록 조회", description = "사용자의 채팅방 목록을 조회합니다.") public ResponseEntity<ApiResponse<PageResponse<MateChatRoomListResponse>>> getMyChatRooms( @Parameter(description = "페이지 정보") @PageableDefault Pageable pageable, @AuthenticationPrincipal AuthMember member ) { + + if (member == null) { + throw new CustomException(ErrorCode.UNAUTHORIZED_USER); + } PageResponse<MateChatRoomListResponse> response = chatRoomService.getMyChatRooms(member.getMemberId(), pageable); return ResponseEntity.ok(ApiResponse.success(response)); } - @PostMapping("chat/{chatroomId}/join") - @Operation(summary = "내 채팅방 목록 -> 채팅방 입장", description = "채팅 목록 페이지에서 채팅방으로 입장") + @PostMapping("/{chatroomId}/join") + @Operation(summary = "채팅방 목록 -> 채팅방 입장", description = "채팅 목록 페이지에서 채팅방으로 입장") public ResponseEntity<ApiResponse<MateChatRoomResponse>> joinExistingChatRoom( @Parameter(description = "채팅방 ID") @PathVariable Long chatroomId, - @AuthenticationPrincipal AuthMember member + @AuthenticationPrincipal AuthMember member ) { MateChatRoomResponse response = chatRoomService.joinExistingChatRoom(chatroomId, member.getMemberId()); return ResponseEntity.ok(ApiResponse.success(response)); diff --git a/src/main/java/com/example/mate/domain/mateChat/service/MateChatRoomService.java b/src/main/java/com/example/mate/domain/mateChat/service/MateChatRoomService.java index a4fbac69..93ba6712 100644 --- a/src/main/java/com/example/mate/domain/mateChat/service/MateChatRoomService.java +++ b/src/main/java/com/example/mate/domain/mateChat/service/MateChatRoomService.java @@ -268,6 +268,9 @@ public PageResponse<MateChatMessageResponse> getChatMessages(Long roomId, Long m // 내 채팅방 목록 조회 @Transactional(readOnly = true) public PageResponse<MateChatRoomListResponse> getMyChatRooms(Long memberId, Pageable pageable) { + memberRepository.findById(memberId) + .orElseThrow(() -> new CustomException(ErrorCode.MEMBER_NOT_FOUND_BY_ID)); + Page<MateChatRoom> chatRooms = chatRoomRepository.findActiveChatRoomsByMemberId(memberId, pageable); List<MateChatRoomListResponse> responses = chatRooms.getContent().stream() @@ -299,6 +302,9 @@ private void sendLeaveMessage(Long roomId, Member member) { } private void validateChatRoomAccess(Long roomId, Long memberId) { + memberRepository.findById(memberId) + .orElseThrow(() -> new CustomException(ErrorCode.MEMBER_NOT_FOUND_BY_ID)); + MateChatRoomMember member = chatRoomMemberRepository.findByChatRoomIdAndMemberId(roomId, memberId) .orElseThrow(() -> new CustomException(ErrorCode.CHAT_ROOM_MEMBER_NOT_FOUND));