diff --git a/smarketing-java/marketing-content/src/main/java/com/won/smarketing/content/infrastructure/external/ClaudeAiContentGenerator.java b/smarketing-java/marketing-content/src/main/java/com/won/smarketing/content/infrastructure/external/ClaudeAiContentGenerator.java index 07b0602..7243c26 100644 --- a/smarketing-java/marketing-content/src/main/java/com/won/smarketing/content/infrastructure/external/ClaudeAiContentGenerator.java +++ b/smarketing-java/marketing-content/src/main/java/com/won/smarketing/content/infrastructure/external/ClaudeAiContentGenerator.java @@ -63,7 +63,7 @@ public class ClaudeAiContentGenerator implements AiContentGenerator { .bodyValue(requestBody) .retrieve() .bodyToMono(Map.class) - .timeout(Duration.ofSeconds(30)) + .timeout(Duration.ofSeconds(60)) .block(); String content = ""; diff --git a/smarketing-java/marketing-content/src/main/java/com/won/smarketing/content/presentation/controller/ContentController.java b/smarketing-java/marketing-content/src/main/java/com/won/smarketing/content/presentation/controller/ContentController.java index 48a516b..f306abc 100644 --- a/smarketing-java/marketing-content/src/main/java/com/won/smarketing/content/presentation/controller/ContentController.java +++ b/smarketing-java/marketing-content/src/main/java/com/won/smarketing/content/presentation/controller/ContentController.java @@ -10,7 +10,6 @@ import com.won.smarketing.content.presentation.dto.*; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.media.Content; -import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -41,14 +40,14 @@ public class ContentController { /** * SNS 게시물 생성 - * - * @param request SNS 콘텐츠 생성 요청 + * @return 생성된 SNS 콘텐츠 정보 */ @Operation(summary = "SNS 게시물 생성", description = "AI를 활용하여 SNS 게시물을 생성합니다.") @PostMapping(path = "/sns/generate", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) - public ResponseEntity> generateSnsContent(@Valid @RequestPart SnsContentCreateRequest request, - @RequestPart("files") List images) { + public ResponseEntity> generateSnsContent(@Valid @RequestPart("request") String requestJson, + @Valid @RequestPart("files") List images) throws JsonProcessingException { + SnsContentCreateRequest request = objectMapper.readValue(requestJson, SnsContentCreateRequest.class); SnsContentCreateResponse response = snsContentUseCase.generateSnsContent(request, images); return ResponseEntity.ok(ApiResponse.success(response, "SNS 콘텐츠가 성공적으로 생성되었습니다.")); } diff --git a/smarketing-java/store/build.gradle b/smarketing-java/store/build.gradle index dd9e26d..ef65d80 100644 --- a/smarketing-java/store/build.gradle +++ b/smarketing-java/store/build.gradle @@ -5,4 +5,6 @@ dependencies { // Azure Blob Storage 의존성 추가 implementation 'com.azure:azure-storage-blob:12.25.0' implementation 'com.azure:azure-identity:1.11.1' + + implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.3' } \ No newline at end of file