From 1f9e464d9d8af4b4b1323c101c07b9a402566364 Mon Sep 17 00:00:00 2001 From: MatchaKim Date: Fri, 22 Mar 2024 10:12:04 +0900 Subject: [PATCH] =?UTF-8?q?Feat=20:=20=EA=B2=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=ED=9A=8C=EC=9B=90=20=EA=B4=80=EB=A0=A8=20api=EA=B0=9C=EB=B0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/AIGenerateLogRepository.java | 4 ++ .../controller/EveryScriptController.java | 21 ++++++++ .../site/balpyo/script/dto/ScriptRequest.java | 1 + .../balpyo/script/entity/ScriptEntity.java | 7 +++ .../balpyo/script/service/ScriptService.java | 51 +++++++++++++++++++ 5 files changed, 84 insertions(+) create mode 100644 src/main/java/site/balpyo/script/controller/EveryScriptController.java create mode 100644 src/main/java/site/balpyo/script/service/ScriptService.java diff --git a/src/main/java/site/balpyo/ai/repository/AIGenerateLogRepository.java b/src/main/java/site/balpyo/ai/repository/AIGenerateLogRepository.java index 708a03d..ebc7a44 100644 --- a/src/main/java/site/balpyo/ai/repository/AIGenerateLogRepository.java +++ b/src/main/java/site/balpyo/ai/repository/AIGenerateLogRepository.java @@ -3,7 +3,11 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; import site.balpyo.ai.entity.AIGenerateLogEntity; +import site.balpyo.ai.entity.GPTInfoEntity; + +import java.util.Optional; @Repository public interface AIGenerateLogRepository extends JpaRepository { + Optional findByGptInfoEntity(GPTInfoEntity gptInfoEntity); } diff --git a/src/main/java/site/balpyo/script/controller/EveryScriptController.java b/src/main/java/site/balpyo/script/controller/EveryScriptController.java new file mode 100644 index 0000000..9c46fae --- /dev/null +++ b/src/main/java/site/balpyo/script/controller/EveryScriptController.java @@ -0,0 +1,21 @@ +package site.balpyo.script.controller; + + +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; +import site.balpyo.script.dto.ScriptRequest; +import site.balpyo.script.service.ScriptService; + +@RestController +@CrossOrigin +@RequiredArgsConstructor +@RequestMapping("/every") +public class EveryScriptController { + + private final ScriptService scriptService; + + @PostMapping("/script") + public void saveScript(@RequestBody ScriptRequest scriptRequest){ + scriptService.saveScript(scriptRequest); + } +} diff --git a/src/main/java/site/balpyo/script/dto/ScriptRequest.java b/src/main/java/site/balpyo/script/dto/ScriptRequest.java index 138c9d9..306b7f6 100644 --- a/src/main/java/site/balpyo/script/dto/ScriptRequest.java +++ b/src/main/java/site/balpyo/script/dto/ScriptRequest.java @@ -9,6 +9,7 @@ public class ScriptRequest { private String script; private String gptId; + private String uid; private String title; private Integer secTime; } diff --git a/src/main/java/site/balpyo/script/entity/ScriptEntity.java b/src/main/java/site/balpyo/script/entity/ScriptEntity.java index 779dc72..252d34d 100644 --- a/src/main/java/site/balpyo/script/entity/ScriptEntity.java +++ b/src/main/java/site/balpyo/script/entity/ScriptEntity.java @@ -23,6 +23,13 @@ public class ScriptEntity { @GeneratedValue private Long script_id; + @Lob + private String script; + + private String title; + + private Integer secTime; + @CreationTimestamp private LocalDateTime createdAt; diff --git a/src/main/java/site/balpyo/script/service/ScriptService.java b/src/main/java/site/balpyo/script/service/ScriptService.java new file mode 100644 index 0000000..8b5144a --- /dev/null +++ b/src/main/java/site/balpyo/script/service/ScriptService.java @@ -0,0 +1,51 @@ +package site.balpyo.script.service; + + +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import site.balpyo.ai.entity.AIGenerateLogEntity; +import site.balpyo.ai.entity.GPTInfoEntity; +import site.balpyo.ai.repository.AIGenerateLogRepository; +import site.balpyo.ai.repository.GPTInfoRepository; +import site.balpyo.common.dto.CommonResponse; +import site.balpyo.guest.entity.GuestEntity; +import site.balpyo.guest.repository.GuestRepository; +import site.balpyo.script.dto.ScriptRequest; +import site.balpyo.script.entity.ScriptEntity; +import site.balpyo.script.repository.ScriptRepository; + +import java.util.Optional; + +@Service +@RequiredArgsConstructor +public class ScriptService { + + private final ScriptRepository scriptRepository; + + private final GuestRepository guestRepository; + private final AIGenerateLogRepository aiGenerateLogRepository; + private final GPTInfoRepository gptInfoRepository; + + + public ResponseEntity saveScript(ScriptRequest scriptRequest) { + + + Optional guestEntity = guestRepository.findById(scriptRequest.getUid()); + Optional gptInfoEntity = gptInfoRepository.findById(scriptRequest.getGptId()); + Optional aiGenerateLogEntity = aiGenerateLogRepository.findByGptInfoEntity(gptInfoEntity.get()); + + + ScriptEntity scriptEntity = ScriptEntity.builder() + .title(scriptRequest.getTitle()) + .script(scriptRequest.getScript()) + .secTime(scriptRequest.getSecTime()) + .guestEntity(guestEntity.get()) + .aiGenerateLogEntity(aiGenerateLogEntity.get()) + .build(); + + scriptRepository.save(scriptEntity); + + return CommonResponse.success(scriptEntity); + } +}