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 95901683..e6d90ce2 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,13 +1,12 @@ package com.monolithicdemo.controller; +import com.monolithicdemo.model.form.RegisterWebBookForm; import com.monolithicdemo.model.form.RegisterWriterForm; import com.monolithicdemo.service.WriterService; +import com.monolithicdemo.service.WriterWebBookService; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/writer") @@ -15,9 +14,17 @@ import org.springframework.web.bind.annotation.RestController; public class WriterController { private final WriterService writerService; + private final WriterWebBookService writerWebBookService; @PostMapping("/") public ResponseEntity registerWriter(@RequestBody RegisterWriterForm registerWriterForm) { return ResponseEntity.ok().body(writerService.registerWriter(registerWriterForm)); } + + @PostMapping("/{writerId}/webBook") + public ResponseEntity registerWebBook( + @PathVariable(value = "writerId") Long writerId, + @RequestBody RegisterWebBookForm registerWebBookForm) { + return ResponseEntity.ok(writerWebBookService.registerWebBook(writerId, registerWebBookForm)); + } } diff --git a/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/model/entity/WebBook.java b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/model/entity/WebBook.java new file mode 100644 index 00000000..5d950321 --- /dev/null +++ b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/model/entity/WebBook.java @@ -0,0 +1,26 @@ +package com.monolithicdemo.model.entity; + +import lombok.*; + +import javax.persistence.*; +import java.time.LocalDateTime; + +@Setter +@Getter +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table +@Entity +public class WebBook { + @Id + @GeneratedValue(strategy = GenerationType.SEQUENCE) + private Long webBookId; + //제목 + private String name; + //설명 + private String description; + + private LocalDateTime createdAt; + +} diff --git a/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/model/entity/Writer.java b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/model/entity/Writer.java index 010cf5ab..48b46095 100644 --- a/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/model/entity/Writer.java +++ b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/model/entity/Writer.java @@ -15,7 +15,7 @@ import java.time.LocalDateTime; public class Writer { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE) - private Long id; + private Long writerId; private String name; diff --git a/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/model/form/RegisterWebBookForm.java b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/model/form/RegisterWebBookForm.java new file mode 100644 index 00000000..674aca24 --- /dev/null +++ b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/model/form/RegisterWebBookForm.java @@ -0,0 +1,21 @@ +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 RegisterWebBookForm { + + @ApiModelProperty(value = "웹소설 제목", example = "MSA 실습") + private String name; + + @ApiModelProperty(value = "웹소설 설명", example = "Monolithic 에서 MSA 로 실습을 해 봅시다.") + private String description; + +} diff --git a/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/repository/WebBookRepository.java b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/repository/WebBookRepository.java new file mode 100644 index 00000000..199c43e3 --- /dev/null +++ b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/repository/WebBookRepository.java @@ -0,0 +1,9 @@ +package com.monolithicdemo.repository; + +import com.monolithicdemo.model.entity.WebBook; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface WebBookRepository extends JpaRepository { +} diff --git a/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/service/WriterService.java b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/service/WriterService.java index 6e4189b2..4a0e6da1 100644 --- a/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/service/WriterService.java +++ b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/service/WriterService.java @@ -23,6 +23,6 @@ public class WriterService { Writer.builder() .name(registerWriterForm.getName()) .createdAt(LocalDateTime.now()).build() - ).getId(); + ).getWriterId(); } } 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 new file mode 100644 index 00000000..9cc30cdf --- /dev/null +++ b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/service/WriterWebBookService.java @@ -0,0 +1,34 @@ +package com.monolithicdemo.service; + +import com.monolithicdemo.model.entity.WebBook; +import com.monolithicdemo.model.form.RegisterWebBookForm; +import com.monolithicdemo.repository.WebBookRepository; +import com.monolithicdemo.repository.WriterRepository; + +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; + +@Service +@RequiredArgsConstructor +public class WriterWebBookService { + + private final WriterRepository writerRepository; + private final WebBookRepository webBookRepository; + + public Long registerWebBook(Long writerId, RegisterWebBookForm registerWebBookForm) { + + if (writerRepository.existsById(writerId)) { + return webBookRepository.save( + WebBook.builder() + .name(registerWebBookForm.getName()) + .description(registerWebBookForm.getDescription()) + .createdAt(LocalDateTime.now()) + .build()) + .getWebBookId(); + } else { + return null; + } + } +}