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 cfe21545..266754c8 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 @@ -2,10 +2,14 @@ package com.userdemo.client; import com.userdemo.client.form.WebBookChapterRegisterForm; import com.userdemo.client.form.WebBookRegisterForm; +import com.userdemo.model.dto.WebBookDto; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import java.util.List; + @FeignClient(value = "webBook", url = "${external-api.webBook.url}") public interface WebBookClient { @@ -14,4 +18,7 @@ public interface WebBookClient { @PostMapping("/chapter") Long addWebBookChapter(WebBookChapterRegisterForm webBookChapterRegisterForm); + + @GetMapping("") + List getWebBookList(); } diff --git a/msa_practice/msatest/userdemo/src/main/java/com/userdemo/controller/ReaderController.java b/msa_practice/msatest/userdemo/src/main/java/com/userdemo/controller/ReaderController.java index a23fdf4c..4c1072b7 100644 --- a/msa_practice/msatest/userdemo/src/main/java/com/userdemo/controller/ReaderController.java +++ b/msa_practice/msatest/userdemo/src/main/java/com/userdemo/controller/ReaderController.java @@ -1,37 +1,32 @@ -//package com.userdemo.controller; -// -//import com.monolithicdemo.model.dto.WebBookChapterDto; -//import com.monolithicdemo.model.dto.WebBookChapterPaidDto; -//import com.monolithicdemo.model.dto.WebBookDto; -//import com.monolithicdemo.model.form.RegisterReaderForm; -//import com.monolithicdemo.model.form.WebBookChapterPaymentForm; -//import com.monolithicdemo.service.ReaderService; -//import com.monolithicdemo.service.WebBookPaymentService; -//import com.monolithicdemo.service.WebBookService; -//import lombok.RequiredArgsConstructor; -//import org.springframework.http.ResponseEntity; -//import org.springframework.web.bind.annotation.*; -// -//import java.util.List; -// -//@RestController -//@RequestMapping("/reader") -//@RequiredArgsConstructor -//public class ReaderController { -// -// private final ReaderService ReaderService; -// private final WebBookService webBookService; -// private final WebBookPaymentService webBookPaymentService; -// -// @PostMapping("/") -// public ResponseEntity registerReader(@RequestBody RegisterReaderForm registerReaderForm){ -// return ResponseEntity.ok(ReaderService.registerReader(registerReaderForm)); -// } -// -// @GetMapping("/webBook") -// public ResponseEntity> getWebBookList() { -// return ResponseEntity.ok().body(webBookService.getWebBookList()); -// } +package com.userdemo.controller; + +import com.userdemo.model.dto.WebBookDto; +import com.userdemo.model.form.RegisterReaderForm; +import com.userdemo.service.ReaderService; +import com.userdemo.service.ReaderWebBookService; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/reader") +@RequiredArgsConstructor +public class ReaderController { + + private final ReaderService ReaderService; + private final ReaderWebBookService readerWebBookService; + + @PostMapping("/") + public ResponseEntity registerReader(@RequestBody RegisterReaderForm registerReaderForm){ + return ResponseEntity.ok(ReaderService.registerReader(registerReaderForm)); + } + + @GetMapping("/webBook") + public ResponseEntity> getWebBookList() { + return ResponseEntity.ok().body(readerWebBookService.getWebBookList()); + } // // @GetMapping("/{readerId}/webBook/{webBookId}/chapter") // public ResponseEntity> getWebBookChapterList( @@ -46,4 +41,4 @@ // @RequestBody WebBookChapterPaymentForm webBookChapterPaymentForm) { // return ResponseEntity.ok().body(webBookPaymentService.payment(readerId, webBookChapterPaymentForm)); // } -//} +} diff --git a/msa_practice/msatest/userdemo/src/main/java/com/userdemo/model/dto/WebBookDto.java b/msa_practice/msatest/userdemo/src/main/java/com/userdemo/model/dto/WebBookDto.java new file mode 100644 index 00000000..9afbcc48 --- /dev/null +++ b/msa_practice/msatest/userdemo/src/main/java/com/userdemo/model/dto/WebBookDto.java @@ -0,0 +1,22 @@ +package com.userdemo.model.dto; + +import lombok.*; + +import java.time.LocalDateTime; + +@Setter +@Getter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class WebBookDto { + + private Long webBookId; + //제목 + private String name; + //설명 + private String description; + + private LocalDateTime createdAt; + +} diff --git a/msa_practice/msatest/userdemo/src/main/java/com/userdemo/service/ReaderWebBookService.java b/msa_practice/msatest/userdemo/src/main/java/com/userdemo/service/ReaderWebBookService.java new file mode 100644 index 00000000..e0d8e7e6 --- /dev/null +++ b/msa_practice/msatest/userdemo/src/main/java/com/userdemo/service/ReaderWebBookService.java @@ -0,0 +1,19 @@ +package com.userdemo.service; + +import com.userdemo.client.WebBookClient; +import com.userdemo.model.dto.WebBookDto; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +@RequiredArgsConstructor +public class ReaderWebBookService { + + private final WebBookClient webBookClient; + + public List getWebBookList() { + return webBookClient.getWebBookList(); + } +} 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 f15f3765..3fd17c9c 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,14 +1,14 @@ package com.webbookdemo.controller; +import com.webbookdemo.model.dto.WebBookDto; import com.webbookdemo.model.form.WebBookChapterRegisterForm; import com.webbookdemo.model.form.WebBookRegisterForm; import com.webbookdemo.service.WebBookService; 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.*; + +import java.util.List; @RestController @RequestMapping("") @@ -17,7 +17,7 @@ public class WebBookController { private final WebBookService webBookService; - @PostMapping + @PostMapping("") public ResponseEntity addWebBook(@RequestBody WebBookRegisterForm webBookRegisterForm) { return ResponseEntity.ok().body(webBookService.addWebBook(webBookRegisterForm)); } @@ -27,4 +27,8 @@ public class WebBookController { return ResponseEntity.ok().body(webBookService.addWebBookChapter(webBookChapterRegisterForm)); } + @GetMapping("") + public ResponseEntity> getWebBookList() { + return ResponseEntity.ok().body(webBookService.getWebBookList()); + } } diff --git a/msa_practice/msatest/webbookdemo/src/main/java/com/webbookdemo/model/dto/WebBookDto.java b/msa_practice/msatest/webbookdemo/src/main/java/com/webbookdemo/model/dto/WebBookDto.java new file mode 100644 index 00000000..2aebbbb2 --- /dev/null +++ b/msa_practice/msatest/webbookdemo/src/main/java/com/webbookdemo/model/dto/WebBookDto.java @@ -0,0 +1,31 @@ +package com.webbookdemo.model.dto; + +import com.webbookdemo.model.entity.WebBook; +import lombok.*; + +import java.time.LocalDateTime; + +@Setter +@Getter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class WebBookDto { + + private Long webBookId; + //제목 + private String name; + //설명 + private String description; + + private LocalDateTime createdAt; + + public static WebBookDto from(WebBook webBook){ + return WebBookDto.builder() + .webBookId(webBook.getWebBookId()) + .name(webBook.getName()) + .description(webBook.getDescription()) + .createdAt(webBook.getCreatedAt()) + .build(); + } +} 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 d0782699..02bd709e 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,5 +1,6 @@ package com.webbookdemo.service; +import com.webbookdemo.model.dto.WebBookDto; import com.webbookdemo.model.entity.WebBook; import com.webbookdemo.model.entity.WebBookChapter; import com.webbookdemo.model.entity.repository.WebBookChapterRepository; @@ -10,6 +11,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.time.LocalDateTime; +import java.util.List; +import java.util.stream.Collectors; @Service @RequiredArgsConstructor @@ -45,4 +48,10 @@ public class WebBookService { return null; } } + + public List getWebBookList() { + return webBookRepository.findAll().stream() + .map(WebBookDto::from) + .collect(Collectors.toList()); + } }