diff --git a/msa_practice/msatest/userdemo/src/main/java/com/userdemo/client/WebBookClient.java b/msa_practice/msatest/userdemo/src/main/java/com/userdemo/client/WebBookClient.java index 8947e9cf..cfe21545 100644 --- a/msa_practice/msatest/userdemo/src/main/java/com/userdemo/client/WebBookClient.java +++ b/msa_practice/msatest/userdemo/src/main/java/com/userdemo/client/WebBookClient.java @@ -1,5 +1,6 @@ package com.userdemo.client; +import com.userdemo.client.form.WebBookChapterRegisterForm; import com.userdemo.client.form.WebBookRegisterForm; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -10,4 +11,7 @@ public interface WebBookClient { @PostMapping("") Long addBook(@RequestBody WebBookRegisterForm registerWebBookForm); + + @PostMapping("/chapter") + Long addWebBookChapter(WebBookChapterRegisterForm webBookChapterRegisterForm); } diff --git a/msa_practice/msatest/userdemo/src/main/java/com/userdemo/client/form/WebBookChapterRegisterForm.java b/msa_practice/msatest/userdemo/src/main/java/com/userdemo/client/form/WebBookChapterRegisterForm.java new file mode 100644 index 00000000..561feeed --- /dev/null +++ b/msa_practice/msatest/userdemo/src/main/java/com/userdemo/client/form/WebBookChapterRegisterForm.java @@ -0,0 +1,25 @@ +package com.userdemo.client.form; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; + +@Setter +@Getter +@Builder +@AllArgsConstructor +@NoArgsConstructor +@ApiModel +public class WebBookChapterRegisterForm { + + private Long webBookId; + + @ApiModelProperty(value = "웹소설 제목", example = "MSA 실습") + private String name; + + @ApiModelProperty(value = "웹소설 내용", example = "Blah ~~.") + private String detail; + + private Integer price; + +} diff --git a/msa_practice/msatest/userdemo/src/main/java/com/userdemo/controller/WriterController.java b/msa_practice/msatest/userdemo/src/main/java/com/userdemo/controller/WriterController.java index c93469c6..69aa511f 100644 --- a/msa_practice/msatest/userdemo/src/main/java/com/userdemo/controller/WriterController.java +++ b/msa_practice/msatest/userdemo/src/main/java/com/userdemo/controller/WriterController.java @@ -1,5 +1,6 @@ package com.userdemo.controller; +import com.userdemo.model.form.RegisterWebBookChapterForm; import com.userdemo.model.form.RegisterWebBookForm; import com.userdemo.model.form.RegisterWriterForm; import com.userdemo.service.WriterService; @@ -28,11 +29,11 @@ public class WriterController { 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)); -// } + @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/msatest/userdemo/src/main/java/com/userdemo/service/WriterWebBookService.java b/msa_practice/msatest/userdemo/src/main/java/com/userdemo/service/WriterWebBookService.java index 249c4dd5..9b90cd66 100644 --- a/msa_practice/msatest/userdemo/src/main/java/com/userdemo/service/WriterWebBookService.java +++ b/msa_practice/msatest/userdemo/src/main/java/com/userdemo/service/WriterWebBookService.java @@ -1,14 +1,14 @@ package com.userdemo.service; import com.userdemo.client.WebBookClient; +import com.userdemo.client.form.WebBookChapterRegisterForm; import com.userdemo.client.form.WebBookRegisterForm; import com.userdemo.model.entity.repository.WriterRepository; +import com.userdemo.model.form.RegisterWebBookChapterForm; import com.userdemo.model.form.RegisterWebBookForm; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; -import java.time.LocalDateTime; - @Service @RequiredArgsConstructor public class WriterWebBookService { @@ -31,18 +31,18 @@ public class WriterWebBookService { } } -// 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; -// } -// } + public Long registerWebBookChapter(Long writerId, Long webBookId, RegisterWebBookChapterForm registerWebBookChapterForm) { + if (writerRepository.existsById(writerId)) { + WebBookChapterRegisterForm webBookChapterRegisterForm = WebBookChapterRegisterForm.builder() + .webBookId(webBookId) + .name(registerWebBookChapterForm.getName()) + .detail(registerWebBookChapterForm.getDetail()) + .price(registerWebBookChapterForm.getPrice()) + .build(); + + return webBookClient.addWebBookChapter(webBookChapterRegisterForm); + } else { + return null; + } + } } diff --git a/msa_practice/msatest/webbookdemo/src/main/java/com/webbookdemo/controller/WebBookController.java b/msa_practice/msatest/webbookdemo/src/main/java/com/webbookdemo/controller/WebBookController.java index a870b918..f15f3765 100644 --- a/msa_practice/msatest/webbookdemo/src/main/java/com/webbookdemo/controller/WebBookController.java +++ b/msa_practice/msatest/webbookdemo/src/main/java/com/webbookdemo/controller/WebBookController.java @@ -1,5 +1,6 @@ package com.webbookdemo.controller; +import com.webbookdemo.model.form.WebBookChapterRegisterForm; import com.webbookdemo.model.form.WebBookRegisterForm; import com.webbookdemo.service.WebBookService; import lombok.RequiredArgsConstructor; @@ -21,4 +22,9 @@ public class WebBookController { return ResponseEntity.ok().body(webBookService.addWebBook(webBookRegisterForm)); } + @PostMapping("/chapter") + public ResponseEntity addWebBookChapter(@RequestBody WebBookChapterRegisterForm webBookChapterRegisterForm) { + return ResponseEntity.ok().body(webBookService.addWebBookChapter(webBookChapterRegisterForm)); + } + } diff --git a/msa_practice/msatest/webbookdemo/src/main/java/com/webbookdemo/model/form/WebBookChapterRegisterForm.java b/msa_practice/msatest/webbookdemo/src/main/java/com/webbookdemo/model/form/WebBookChapterRegisterForm.java new file mode 100644 index 00000000..d8a54958 --- /dev/null +++ b/msa_practice/msatest/webbookdemo/src/main/java/com/webbookdemo/model/form/WebBookChapterRegisterForm.java @@ -0,0 +1,25 @@ +package com.webbookdemo.model.form; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; + +@Setter +@Getter +@Builder +@AllArgsConstructor +@NoArgsConstructor +@ApiModel +public class WebBookChapterRegisterForm { + + private Long webBookId; + + @ApiModelProperty(value = "웹소설 제목", example = "MSA 실습") + private String name; + + @ApiModelProperty(value = "웹소설 내용", example = "Blah ~~.") + private String detail; + + private Integer price; + +} diff --git a/msa_practice/msatest/webbookdemo/src/main/java/com/webbookdemo/service/WebBookService.java b/msa_practice/msatest/webbookdemo/src/main/java/com/webbookdemo/service/WebBookService.java index 039584fb..d0782699 100644 --- a/msa_practice/msatest/webbookdemo/src/main/java/com/webbookdemo/service/WebBookService.java +++ b/msa_practice/msatest/webbookdemo/src/main/java/com/webbookdemo/service/WebBookService.java @@ -1,7 +1,10 @@ package com.webbookdemo.service; import com.webbookdemo.model.entity.WebBook; +import com.webbookdemo.model.entity.WebBookChapter; +import com.webbookdemo.model.entity.repository.WebBookChapterRepository; import com.webbookdemo.model.entity.repository.WebBookRepository; +import com.webbookdemo.model.form.WebBookChapterRegisterForm; import com.webbookdemo.model.form.WebBookRegisterForm; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -13,6 +16,7 @@ import java.time.LocalDateTime; public class WebBookService { private final WebBookRepository webBookRepository; + private final WebBookChapterRepository webBookChapterRepository; public Long addWebBook(WebBookRegisterForm webBookRegisterForm) { @@ -25,4 +29,20 @@ public class WebBookService { .build() ).getWebBookId(); } + + public Long addWebBookChapter(WebBookChapterRegisterForm webBookChapterRegisterForm) { + + if (webBookRepository.existsById(webBookChapterRegisterForm.getWebBookId())) { + return webBookChapterRepository.save( + WebBookChapter.builder() + .webBookId(webBookChapterRegisterForm.getWebBookId()) + .name(webBookChapterRegisterForm.getName()) + .detail(webBookChapterRegisterForm.getDetail()) + .price(webBookChapterRegisterForm.getPrice()) + .build() + ).getWebBookChapterId(); + } else { + return null; + } + } }