feat(admin-character): 캐릭터 배너 등록/수정 API
- request를 JSON String으로 받도록 수정
This commit is contained in:
		| @@ -1,6 +1,7 @@ | |||||||
| package kr.co.vividnext.sodalive.admin.chat | package kr.co.vividnext.sodalive.admin.chat | ||||||
|  |  | ||||||
| import com.amazonaws.services.s3.model.ObjectMetadata | 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.dto.ChatCharacterSearchListPageResponse | ||||||
| import kr.co.vividnext.sodalive.admin.chat.character.service.AdminChatCharacterService | import kr.co.vividnext.sodalive.admin.chat.character.service.AdminChatCharacterService | ||||||
| import kr.co.vividnext.sodalive.admin.chat.dto.ChatCharacterBannerListPageResponse | import kr.co.vividnext.sodalive.admin.chat.dto.ChatCharacterBannerListPageResponse | ||||||
| @@ -105,14 +106,20 @@ class AdminChatBannerController( | |||||||
|      * 배너 등록 API |      * 배너 등록 API | ||||||
|      * |      * | ||||||
|      * @param image 배너 이미지 |      * @param image 배너 이미지 | ||||||
|      * @param request 배너 등록 요청 정보 (캐릭터 ID와 선택적으로 정렬 순서 포함) |      * @param requestString 배너 등록 요청 정보 (캐릭터 ID와 선택적으로 정렬 순서 포함) | ||||||
|      * @return 등록된 배너 정보 |      * @return 등록된 배너 정보 | ||||||
|      */ |      */ | ||||||
|     @PostMapping("/register") |     @PostMapping("/register") | ||||||
|     fun registerBanner( |     fun registerBanner( | ||||||
|         @RequestPart("image") image: MultipartFile, |         @RequestPart("image") image: MultipartFile, | ||||||
|         @RequestPart("request") request: ChatCharacterBannerRegisterRequest |         @RequestPart("request") requestString: String | ||||||
|     ) = run { |     ) = run { | ||||||
|  |         val objectMapper = ObjectMapper() | ||||||
|  |         val request = objectMapper.readValue( | ||||||
|  |             requestString, | ||||||
|  |             ChatCharacterBannerRegisterRequest::class.java | ||||||
|  |         ) | ||||||
|  |  | ||||||
|         // 1. 먼저 빈 이미지 경로로 배너 등록 (정렬 순서 포함) |         // 1. 먼저 빈 이미지 경로로 배너 등록 (정렬 순서 포함) | ||||||
|         val banner = bannerService.registerBanner( |         val banner = bannerService.registerBanner( | ||||||
|             characterId = request.characterId, |             characterId = request.characterId, | ||||||
| @@ -160,14 +167,19 @@ class AdminChatBannerController( | |||||||
|      * 배너 수정 API |      * 배너 수정 API | ||||||
|      * |      * | ||||||
|      * @param image 배너 이미지 |      * @param image 배너 이미지 | ||||||
|      * @param request 배너 수정 요청 정보 (배너 ID와 선택적으로 캐릭터 ID 포함) |      * @param requestString 배너 수정 요청 정보 (배너 ID와 선택적으로 캐릭터 ID 포함) | ||||||
|      * @return 수정된 배너 정보 |      * @return 수정된 배너 정보 | ||||||
|      */ |      */ | ||||||
|     @PutMapping("/update") |     @PutMapping("/update") | ||||||
|     fun updateBanner( |     fun updateBanner( | ||||||
|         @RequestPart("image") image: MultipartFile, |         @RequestPart("image") image: MultipartFile, | ||||||
|         @RequestPart("request") request: ChatCharacterBannerUpdateRequest |         @RequestPart("request") requestString: String | ||||||
|     ) = run { |     ) = run { | ||||||
|  |         val objectMapper = ObjectMapper() | ||||||
|  |         val request = objectMapper.readValue( | ||||||
|  |             requestString, | ||||||
|  |             ChatCharacterBannerUpdateRequest::class.java | ||||||
|  |         ) | ||||||
|         // 배너 정보 조회 |         // 배너 정보 조회 | ||||||
|         bannerService.getBannerById(request.bannerId) |         bannerService.getBannerById(request.bannerId) | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user