From d99fcba468718eb53a681551f3449fad5881585f Mon Sep 17 00:00:00 2001 From: Klaus Date: Tue, 12 Aug 2025 22:47:56 +0900 Subject: [PATCH] =?UTF-8?q?feat(admin-character):=20=EC=BA=90=EB=A6=AD?= =?UTF-8?q?=ED=84=B0=20=EB=B0=B0=EB=84=88=20=EB=93=B1=EB=A1=9D/=EC=88=98?= =?UTF-8?q?=EC=A0=95=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - request를 JSON String으로 받도록 수정 --- .../admin/chat/AdminChatBannerController.kt | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/chat/AdminChatBannerController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/chat/AdminChatBannerController.kt index d4831fb..8835044 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/chat/AdminChatBannerController.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/chat/AdminChatBannerController.kt @@ -1,6 +1,7 @@ package kr.co.vividnext.sodalive.admin.chat import com.amazonaws.services.s3.model.ObjectMetadata +import com.fasterxml.jackson.databind.ObjectMapper import kr.co.vividnext.sodalive.admin.chat.character.dto.ChatCharacterSearchListPageResponse import kr.co.vividnext.sodalive.admin.chat.character.service.AdminChatCharacterService import kr.co.vividnext.sodalive.admin.chat.dto.ChatCharacterBannerListPageResponse @@ -105,14 +106,20 @@ class AdminChatBannerController( * 배너 등록 API * * @param image 배너 이미지 - * @param request 배너 등록 요청 정보 (캐릭터 ID와 선택적으로 정렬 순서 포함) + * @param requestString 배너 등록 요청 정보 (캐릭터 ID와 선택적으로 정렬 순서 포함) * @return 등록된 배너 정보 */ @PostMapping("/register") fun registerBanner( @RequestPart("image") image: MultipartFile, - @RequestPart("request") request: ChatCharacterBannerRegisterRequest + @RequestPart("request") requestString: String ) = run { + val objectMapper = ObjectMapper() + val request = objectMapper.readValue( + requestString, + ChatCharacterBannerRegisterRequest::class.java + ) + // 1. 먼저 빈 이미지 경로로 배너 등록 (정렬 순서 포함) val banner = bannerService.registerBanner( characterId = request.characterId, @@ -160,14 +167,19 @@ class AdminChatBannerController( * 배너 수정 API * * @param image 배너 이미지 - * @param request 배너 수정 요청 정보 (배너 ID와 선택적으로 캐릭터 ID 포함) + * @param requestString 배너 수정 요청 정보 (배너 ID와 선택적으로 캐릭터 ID 포함) * @return 수정된 배너 정보 */ @PutMapping("/update") fun updateBanner( @RequestPart("image") image: MultipartFile, - @RequestPart("request") request: ChatCharacterBannerUpdateRequest + @RequestPart("request") requestString: String ) = run { + val objectMapper = ObjectMapper() + val request = objectMapper.readValue( + requestString, + ChatCharacterBannerUpdateRequest::class.java + ) // 배너 정보 조회 bannerService.getBannerById(request.bannerId)