From 1abfb324026ef482fb6df3cdc804f29ab2169eee Mon Sep 17 00:00:00 2001 From: DHkimgit Date: Thu, 15 Jan 2026 21:41:02 +0900 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20=EC=B1=84=ED=8C=85=20=EC=83=81?= =?UTF-8?q?=EB=8C=80=EB=B0=A9=20=ED=83=88=ED=87=B4=EC=8B=9C=20=EC=98=88?= =?UTF-8?q?=EC=99=B8=20=EC=B2=98=EB=A6=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/LostItemChatRoomApi.java | 18 ++++++++++++++++++ .../service/LostItemArticleInfoService.java | 7 ++++++- .../koin/global/code/ApiResponseCode.java | 1 + 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/main/java/in/koreatech/koin/domain/community/lostitem/chatroom/controller/LostItemChatRoomApi.java b/src/main/java/in/koreatech/koin/domain/community/lostitem/chatroom/controller/LostItemChatRoomApi.java index 563e33bd4..56afbd239 100644 --- a/src/main/java/in/koreatech/koin/domain/community/lostitem/chatroom/controller/LostItemChatRoomApi.java +++ b/src/main/java/in/koreatech/koin/domain/community/lostitem/chatroom/controller/LostItemChatRoomApi.java @@ -61,6 +61,17 @@ public interface LostItemChatRoomApi { """) }) ), + @ApiResponse(responseCode = "404", description = "리소스 없음", + content = @Content(mediaType = "application/json", examples = { + @ExampleObject(name = "채팅 상대방 탈퇴", summary = "채팅 상대방이 존재하지 않습니다.", value = """ + { + "message": "분실물 게시글 채팅방이 존재하지 않습니다.", + "errorTraceId": "123e4567-e89b-12d3-a456-426614174000", + "code": "NOT_FOUND_CHAT_PARTNER" + } + """) + }) + ) }) @Operation( summary = "분실물 게시글에서 직접 채팅방 진입시 채팅방 데이터 생성, 필요한 데이터 반환", @@ -110,6 +121,13 @@ ResponseEntity createLostItemChatRoom( "errorTraceId": "123e4567-e89b-12d3-a456-426614174000", "code": "NOT_FOUND_LOST_ITEM_CHATROOM" } + """), + @ExampleObject(name = "채팅 상대방 탈퇴", summary = "채팅 상대방이 존재하지 않습니다.", value = """ + { + "message": "분실물 게시글 채팅방이 존재하지 않습니다.", + "errorTraceId": "123e4567-e89b-12d3-a456-426614174000", + "code": "NOT_FOUND_CHAT_PARTNER" + } """) }) ), diff --git a/src/main/java/in/koreatech/koin/domain/community/lostitem/chatroom/service/LostItemArticleInfoService.java b/src/main/java/in/koreatech/koin/domain/community/lostitem/chatroom/service/LostItemArticleInfoService.java index d59cdd3bd..e95c536b2 100644 --- a/src/main/java/in/koreatech/koin/domain/community/lostitem/chatroom/service/LostItemArticleInfoService.java +++ b/src/main/java/in/koreatech/koin/domain/community/lostitem/chatroom/service/LostItemArticleInfoService.java @@ -1,7 +1,10 @@ package in.koreatech.koin.domain.community.lostitem.chatroom.service; +import java.util.Optional; + import org.springframework.stereotype.Service; +import in.koreatech.koin.domain.user.model.User; import in.koreatech.koin.global.code.ApiResponseCode; import in.koreatech.koin.global.exception.CustomException; import in.koreatech.koin.domain.community.article.model.Article; @@ -31,6 +34,8 @@ public String getChatPartnerProfileImage(Integer articleId) { () -> CustomException.of(ApiResponseCode.NOT_FOUND_ARTICLE) ); - return lostItemArticle.getAuthor().getProfileImageUrl(); + return Optional.ofNullable(lostItemArticle.getAuthor()) + .map(User::getProfileImageUrl) + .orElseThrow(() -> CustomException.of(ApiResponseCode.NOT_FOUND_CHAT_PARTNER)); } } diff --git a/src/main/java/in/koreatech/koin/global/code/ApiResponseCode.java b/src/main/java/in/koreatech/koin/global/code/ApiResponseCode.java index 46fb02300..466216eee 100644 --- a/src/main/java/in/koreatech/koin/global/code/ApiResponseCode.java +++ b/src/main/java/in/koreatech/koin/global/code/ApiResponseCode.java @@ -129,6 +129,7 @@ public enum ApiResponseCode { NOT_FOUND_SHOP(HttpStatus.NOT_FOUND, "상점이 존재하지 않습니다."), NOT_FOUND_COOP_SEMESTER(HttpStatus.NOT_FOUND, "해당 학기가 존재하지 않습니다."), NOT_FOUND_SHOP_ORDER_SERVICE_REQUEST(HttpStatus.NOT_FOUND, "상점 서비스 전환 요청이 존재하지 않습니다."), + NOT_FOUND_CHAT_PARTNER(HttpStatus.NOT_FOUND, "채팅 상대방이 존재하지 않습니다."), /** * 409 CONFLICT (중복 혹은 충돌) From 4432bdf759fbed7bd6492599ab70377c3763d006 Mon Sep 17 00:00:00 2001 From: DHkimgit Date: Thu, 15 Jan 2026 21:45:50 +0900 Subject: [PATCH 2/3] =?UTF-8?q?chore:=20swagger=20=EB=AC=B8=EA=B5=AC=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lostitem/chatroom/controller/LostItemChatRoomApi.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/in/koreatech/koin/domain/community/lostitem/chatroom/controller/LostItemChatRoomApi.java b/src/main/java/in/koreatech/koin/domain/community/lostitem/chatroom/controller/LostItemChatRoomApi.java index 56afbd239..dcb1ef4ac 100644 --- a/src/main/java/in/koreatech/koin/domain/community/lostitem/chatroom/controller/LostItemChatRoomApi.java +++ b/src/main/java/in/koreatech/koin/domain/community/lostitem/chatroom/controller/LostItemChatRoomApi.java @@ -65,7 +65,7 @@ public interface LostItemChatRoomApi { content = @Content(mediaType = "application/json", examples = { @ExampleObject(name = "채팅 상대방 탈퇴", summary = "채팅 상대방이 존재하지 않습니다.", value = """ { - "message": "분실물 게시글 채팅방이 존재하지 않습니다.", + "message": "채팅 상대방이 존재하지 않습니다.", "errorTraceId": "123e4567-e89b-12d3-a456-426614174000", "code": "NOT_FOUND_CHAT_PARTNER" } @@ -124,7 +124,7 @@ ResponseEntity createLostItemChatRoom( """), @ExampleObject(name = "채팅 상대방 탈퇴", summary = "채팅 상대방이 존재하지 않습니다.", value = """ { - "message": "분실물 게시글 채팅방이 존재하지 않습니다.", + "message": "채팅 상대방이 존재하지 않습니다.", "errorTraceId": "123e4567-e89b-12d3-a456-426614174000", "code": "NOT_FOUND_CHAT_PARTNER" } From ecd7ad2409fe15edfa4e4ac1fe0fc071b51c7c95 Mon Sep 17 00:00:00 2001 From: DHkimgit Date: Fri, 16 Jan 2026 12:53:00 +0900 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=EB=A6=AC=EB=B7=B0=20=EB=B0=98?= =?UTF-8?q?=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lostitem/chatroom/service/LostItemArticleInfoService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/in/koreatech/koin/domain/community/lostitem/chatroom/service/LostItemArticleInfoService.java b/src/main/java/in/koreatech/koin/domain/community/lostitem/chatroom/service/LostItemArticleInfoService.java index e95c536b2..2a6c8f440 100644 --- a/src/main/java/in/koreatech/koin/domain/community/lostitem/chatroom/service/LostItemArticleInfoService.java +++ b/src/main/java/in/koreatech/koin/domain/community/lostitem/chatroom/service/LostItemArticleInfoService.java @@ -34,8 +34,8 @@ public String getChatPartnerProfileImage(Integer articleId) { () -> CustomException.of(ApiResponseCode.NOT_FOUND_ARTICLE) ); - return Optional.ofNullable(lostItemArticle.getAuthor()) - .map(User::getProfileImageUrl) + User author = Optional.ofNullable(lostItemArticle.getAuthor()) .orElseThrow(() -> CustomException.of(ApiResponseCode.NOT_FOUND_CHAT_PARTNER)); + return author.getProfileImageUrl(); } }