msa : monolithic - regist webbook chapter

This commit is contained in:
haerong22
2021-07-29 14:49:22 +09:00
parent 5acd0d6188
commit a653ad6f5d
5 changed files with 88 additions and 0 deletions

View File

@@ -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<Long> registerWebBookChapter(
@PathVariable(value = "writerId") Long writerId,
@PathVariable(value = "webBookId") Long webBookId,
@RequestBody RegisterWebBookChapterForm registerWebBookChapterForm) {
return ResponseEntity.ok(writerWebBookService.registerWebBookChapter(writerId, webBookId, registerWebBookChapterForm));
}
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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<WebBookChapter,Long> {
}

View File

@@ -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;
}
}
}