diff --git a/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/controller/ReaderController.java b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/controller/ReaderController.java new file mode 100644 index 00000000..c845eaa6 --- /dev/null +++ b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/controller/ReaderController.java @@ -0,0 +1,23 @@ +package com.monolithicdemo.controller; + +import com.monolithicdemo.model.form.RegisterReaderForm; +import com.monolithicdemo.service.ReaderService; +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; + +@RestController +@RequestMapping("/reader") +@RequiredArgsConstructor +public class ReaderController { + + private final ReaderService ReaderService; + + @PostMapping("/") + public ResponseEntity registerReader(@RequestBody RegisterReaderForm registerReaderForm){ + return ResponseEntity.ok(ReaderService.registerReader(registerReaderForm)); + } +} diff --git a/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/model/entity/Reader.java b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/model/entity/Reader.java new file mode 100644 index 00000000..40445b4b --- /dev/null +++ b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/model/entity/Reader.java @@ -0,0 +1,23 @@ +package com.monolithicdemo.model.entity; + +import lombok.*; + +import javax.persistence.*; +import java.time.LocalDateTime; + +@Setter +@Getter +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table +@Entity +public class Reader { + @Id + @GeneratedValue(strategy = GenerationType.SEQUENCE) + private Long readerId; + + private String name; + + private LocalDateTime createdAt; +} diff --git a/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/model/form/RegisterReaderForm.java b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/model/form/RegisterReaderForm.java new file mode 100644 index 00000000..0fcb900a --- /dev/null +++ b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/model/form/RegisterReaderForm.java @@ -0,0 +1,15 @@ +package com.monolithicdemo.model.form; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +@Setter +@Getter +@ApiModel +public class RegisterReaderForm { + + @ApiModelProperty(value = "작가의 이름", example = "홍길동") + private String name; +} diff --git a/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/repository/ReaderRepository.java b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/repository/ReaderRepository.java new file mode 100644 index 00000000..44b0ba37 --- /dev/null +++ b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/repository/ReaderRepository.java @@ -0,0 +1,9 @@ +package com.monolithicdemo.repository; + +import com.monolithicdemo.model.entity.Reader; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface ReaderRepository extends JpaRepository { +} diff --git a/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/service/ReaderService.java b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/service/ReaderService.java new file mode 100644 index 00000000..0bb3f129 --- /dev/null +++ b/msa_practice/monolithicdemo/src/main/java/com/monolithicdemo/service/ReaderService.java @@ -0,0 +1,29 @@ +package com.monolithicdemo.service; + +import com.monolithicdemo.model.entity.Reader; +import com.monolithicdemo.model.form.RegisterReaderForm; +import com.monolithicdemo.repository.ReaderRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; + +@Service +/** + * Reader에 대한 CRUD + */ +@RequiredArgsConstructor +public class ReaderService { + + private final ReaderRepository ReaderRepository; + + public Long registerReader(RegisterReaderForm registerReaderForm) { + + return ReaderRepository.save( + Reader.builder() + .name(registerReaderForm.getName()) + .createdAt(LocalDateTime.now()).build() + ).getReaderId(); + + } +}