diff --git a/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/controller/WriterController.java b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/controller/WriterController.java index e6d90ce2..28020ed4 100644 --- a/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/controller/WriterController.java +++ b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/controller/WriterController.java @@ -1,5 +1,6 @@ package com.monolithicdemo.controller; +import com.monolithicdemo.model.form.RegisterWebBookChapterForm; import com.monolithicdemo.model.form.RegisterWebBookForm; import com.monolithicdemo.model.form.RegisterWriterForm; import com.monolithicdemo.service.WriterService; @@ -27,4 +28,12 @@ public class WriterController { @RequestBody RegisterWebBookForm registerWebBookForm) { return ResponseEntity.ok(writerWebBookService.registerWebBook(writerId, registerWebBookForm)); } + + @PostMapping("/{writerId}/webBook/{webBookId}") + public ResponseEntity registerWebBookChapter( + @PathVariable(value = "writerId") Long writerId, + @PathVariable(value = "webBookId") Long webBookId, + @RequestBody RegisterWebBookChapterForm registerWebBookChapterForm) { + return ResponseEntity.ok(writerWebBookService.registerWebBookChapter(writerId, webBookId, registerWebBookChapterForm)); + } } diff --git a/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/model/entity/WebBookChapter.java b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/model/entity/WebBookChapter.java new file mode 100644 index 00000000..b0c3cf49 --- /dev/null +++ b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/model/entity/WebBookChapter.java @@ -0,0 +1,27 @@ +package com.monolithicdemo.model.entity; + +import lombok.*; + +import javax.persistence.*; +import java.time.LocalDateTime; + +@Setter +@Getter +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table +@Entity +public class WebBookChapter { + @Id + @GeneratedValue(strategy = GenerationType.SEQUENCE) + private Long webBookChapterId; + //제목 + private String name; + //내용 + private String detail; + + private LocalDateTime createdAt; + + private Integer price; +} diff --git a/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/model/form/RegisterWebBookChapterForm.java b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/model/form/RegisterWebBookChapterForm.java new file mode 100644 index 00000000..18a01a42 --- /dev/null +++ b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/model/form/RegisterWebBookChapterForm.java @@ -0,0 +1,24 @@ +package com.monolithicdemo.model.form; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDateTime; + +@Setter +@Getter +@ApiModel +public class RegisterWebBookChapterForm { + + @ApiModelProperty(value = "웹소설 제목", example = "MSA 실습") + private String name; + + @ApiModelProperty(value = "웹소설 설명", example = "blah, blah ~~~") + private String detail; + + @ApiModelProperty(value = "웹소설 가격", example = "100") + private Integer price; + +} diff --git a/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/repository/WebBookChapterRepository.java b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/repository/WebBookChapterRepository.java new file mode 100644 index 00000000..1fe86c0f --- /dev/null +++ b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/repository/WebBookChapterRepository.java @@ -0,0 +1,9 @@ +package com.monolithicdemo.repository; + +import com.monolithicdemo.model.entity.WebBookChapter; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface WebBookChapterRepository extends JpaRepository { +} diff --git a/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/service/WriterWebBookService.java b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/service/WriterWebBookService.java index 9cc30cdf..163c2aea 100644 --- a/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/service/WriterWebBookService.java +++ b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/service/WriterWebBookService.java @@ -1,7 +1,10 @@ package com.monolithicdemo.service; import com.monolithicdemo.model.entity.WebBook; +import com.monolithicdemo.model.entity.WebBookChapter; +import com.monolithicdemo.model.form.RegisterWebBookChapterForm; import com.monolithicdemo.model.form.RegisterWebBookForm; +import com.monolithicdemo.repository.WebBookChapterRepository; import com.monolithicdemo.repository.WebBookRepository; import com.monolithicdemo.repository.WriterRepository; @@ -16,6 +19,7 @@ public class WriterWebBookService { private final WriterRepository writerRepository; private final WebBookRepository webBookRepository; + private final WebBookChapterRepository webBookChapterRepository; public Long registerWebBook(Long writerId, RegisterWebBookForm registerWebBookForm) { @@ -31,4 +35,19 @@ public class WriterWebBookService { return null; } } + + public Long registerWebBookChapter(Long writerId, Long webBookId, RegisterWebBookChapterForm registerWebBookChapterForm) { + if (writerRepository.existsById(writerId) && webBookRepository.existsById(webBookId)) { + return webBookChapterRepository.save( + WebBookChapter.builder() + .name(registerWebBookChapterForm.getName()) + .detail(registerWebBookChapterForm.getDetail()) + .createdAt(LocalDateTime.now()) + .price(registerWebBookChapterForm.getPrice()) + .build()) + .getWebBookChapterId(); + } else { + return null; + } + } }