mirror of
https://github.com/won-ktds/smarketing-backend.git
synced 2026-01-21 19:16:23 +00:00
add requestpart
This commit is contained in:
parent
a7f5f61726
commit
81ddc643e5
@ -63,7 +63,7 @@ public class ClaudeAiContentGenerator implements AiContentGenerator {
|
|||||||
.bodyValue(requestBody)
|
.bodyValue(requestBody)
|
||||||
.retrieve()
|
.retrieve()
|
||||||
.bodyToMono(Map.class)
|
.bodyToMono(Map.class)
|
||||||
.timeout(Duration.ofSeconds(30))
|
.timeout(Duration.ofSeconds(60))
|
||||||
.block();
|
.block();
|
||||||
|
|
||||||
String content = "";
|
String content = "";
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
package com.won.smarketing.content.presentation.controller;
|
package com.won.smarketing.content.presentation.controller;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.won.smarketing.common.dto.ApiResponse;
|
import com.won.smarketing.common.dto.ApiResponse;
|
||||||
import com.won.smarketing.content.application.usecase.ContentQueryUseCase;
|
import com.won.smarketing.content.application.usecase.ContentQueryUseCase;
|
||||||
import com.won.smarketing.content.application.usecase.PosterContentUseCase;
|
import com.won.smarketing.content.application.usecase.PosterContentUseCase;
|
||||||
@ -9,6 +11,7 @@ import io.swagger.v3.oas.annotations.Operation;
|
|||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
@ -28,20 +31,23 @@ import java.util.List;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class ContentController {
|
public class ContentController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ObjectMapper objectMapper;
|
||||||
|
|
||||||
private final SnsContentUseCase snsContentUseCase;
|
private final SnsContentUseCase snsContentUseCase;
|
||||||
private final PosterContentUseCase posterContentUseCase;
|
private final PosterContentUseCase posterContentUseCase;
|
||||||
private final ContentQueryUseCase contentQueryUseCase;
|
private final ContentQueryUseCase contentQueryUseCase;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SNS 게시물 생성
|
* SNS 게시물 생성
|
||||||
*
|
|
||||||
* @param request SNS 콘텐츠 생성 요청
|
|
||||||
* @return 생성된 SNS 콘텐츠 정보
|
* @return 생성된 SNS 콘텐츠 정보
|
||||||
*/
|
*/
|
||||||
@Operation(summary = "SNS 게시물 생성", description = "AI를 활용하여 SNS 게시물을 생성합니다.")
|
@Operation(summary = "SNS 게시물 생성", description = "AI를 활용하여 SNS 게시물을 생성합니다.")
|
||||||
@PostMapping(path = "/sns/generate", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
@PostMapping(path = "/sns/generate", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||||
public ResponseEntity<ApiResponse<SnsContentCreateResponse>> generateSnsContent(@Valid @RequestPart SnsContentCreateRequest request,
|
public ResponseEntity<ApiResponse<SnsContentCreateResponse>> generateSnsContent(@Valid @RequestPart("request") String requestJson,
|
||||||
@RequestPart("files") List<MultipartFile> images) {
|
@Valid @RequestPart("files") List<MultipartFile> images) throws JsonProcessingException {
|
||||||
|
SnsContentCreateRequest request = objectMapper.readValue(requestJson, SnsContentCreateRequest.class);
|
||||||
SnsContentCreateResponse response = snsContentUseCase.generateSnsContent(request, images);
|
SnsContentCreateResponse response = snsContentUseCase.generateSnsContent(request, images);
|
||||||
return ResponseEntity.ok(ApiResponse.success(response, "SNS 콘텐츠가 성공적으로 생성되었습니다."));
|
return ResponseEntity.ok(ApiResponse.success(response, "SNS 콘텐츠가 성공적으로 생성되었습니다."));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,4 +5,6 @@ dependencies {
|
|||||||
// Azure Blob Storage 의존성 추가
|
// Azure Blob Storage 의존성 추가
|
||||||
implementation 'com.azure:azure-storage-blob:12.25.0'
|
implementation 'com.azure:azure-storage-blob:12.25.0'
|
||||||
implementation 'com.azure:azure-identity:1.11.1'
|
implementation 'com.azure:azure-identity:1.11.1'
|
||||||
|
|
||||||
|
implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.3'
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user