From 20d9d1a8ba6bb486a1454e8559d5b57de88e331c Mon Sep 17 00:00:00 2001 From: kim Date: Tue, 2 Feb 2021 14:16:53 +0900 Subject: [PATCH] jpablog : write comment(dto) --- .../controller/api/BoardApiController.java | 9 +++---- .../jpablog/dto/ReplySaveRequestDto.java | 15 ++++++++++++ .../java/com/example/jpablog/model/Reply.java | 1 + .../example/jpablog/service/BoardService.java | 24 +++++++++++-------- jpablog/src/main/resources/static/js/board.js | 1 + .../webapp/WEB-INF/views/board/detail.jsp | 1 + 6 files changed, 35 insertions(+), 16 deletions(-) create mode 100644 jpablog/src/main/java/com/example/jpablog/dto/ReplySaveRequestDto.java diff --git a/jpablog/src/main/java/com/example/jpablog/controller/api/BoardApiController.java b/jpablog/src/main/java/com/example/jpablog/controller/api/BoardApiController.java index 7bd3ebb8..be753970 100644 --- a/jpablog/src/main/java/com/example/jpablog/controller/api/BoardApiController.java +++ b/jpablog/src/main/java/com/example/jpablog/controller/api/BoardApiController.java @@ -1,6 +1,7 @@ package com.example.jpablog.controller.api; import com.example.jpablog.config.auth.PrincipalDetail; +import com.example.jpablog.dto.ReplySaveRequestDto; import com.example.jpablog.dto.ResponseDto; import com.example.jpablog.model.Board; import com.example.jpablog.model.Reply; @@ -39,12 +40,8 @@ public class BoardApiController { } @PostMapping("/api/board/{boardId}/reply") - public ResponseDto replySave( - @PathVariable Long boardId, - @RequestBody Reply reply, - @AuthenticationPrincipal PrincipalDetail principal) { - - boardService.댓글쓰기(principal.getUser(), boardId, reply); + public ResponseDto replySave(@RequestBody ReplySaveRequestDto dto) { + boardService.댓글쓰기(dto); return new ResponseDto<>(1, HttpStatus.OK.value()); } diff --git a/jpablog/src/main/java/com/example/jpablog/dto/ReplySaveRequestDto.java b/jpablog/src/main/java/com/example/jpablog/dto/ReplySaveRequestDto.java new file mode 100644 index 00000000..3bce2b94 --- /dev/null +++ b/jpablog/src/main/java/com/example/jpablog/dto/ReplySaveRequestDto.java @@ -0,0 +1,15 @@ +package com.example.jpablog.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ReplySaveRequestDto { + + private Long userId; + private Long boardId; + private String content; +} diff --git a/jpablog/src/main/java/com/example/jpablog/model/Reply.java b/jpablog/src/main/java/com/example/jpablog/model/Reply.java index 239e1654..c4516303 100644 --- a/jpablog/src/main/java/com/example/jpablog/model/Reply.java +++ b/jpablog/src/main/java/com/example/jpablog/model/Reply.java @@ -1,5 +1,6 @@ package com.example.jpablog.model; +import com.example.jpablog.dto.ReplySaveRequestDto; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/jpablog/src/main/java/com/example/jpablog/service/BoardService.java b/jpablog/src/main/java/com/example/jpablog/service/BoardService.java index 8b64bf22..c92e9ef7 100644 --- a/jpablog/src/main/java/com/example/jpablog/service/BoardService.java +++ b/jpablog/src/main/java/com/example/jpablog/service/BoardService.java @@ -1,21 +1,18 @@ package com.example.jpablog.service; -import com.example.jpablog.config.auth.PrincipalDetail; +import com.example.jpablog.dto.ReplySaveRequestDto; import com.example.jpablog.model.Board; import com.example.jpablog.model.Reply; import com.example.jpablog.model.User; import com.example.jpablog.repository.BoardRepository; import com.example.jpablog.repository.ReplyRepository; +import com.example.jpablog.repository.UserRepository; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; -import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.security.Principal; -import java.util.List; - @Service @RequiredArgsConstructor @Transactional(readOnly = true) @@ -23,6 +20,7 @@ public class BoardService { private final BoardRepository boardRepository; private final ReplyRepository replyRepository; + private final UserRepository userRepository; @Transactional public void 글쓰기(Board board, User user) { @@ -65,10 +63,16 @@ public class BoardService { } @Transactional - public void 댓글쓰기(User user, Long boardId, Reply requestReply) { - Board board = boardRepository.findById(boardId).orElseThrow(() -> new IllegalArgumentException("댓글쓰기 실패")); - requestReply.setUser(user); - requestReply.setBoard(board); - replyRepository.save(requestReply); + public void 댓글쓰기(ReplySaveRequestDto replySaveRequestDto) { + User user = userRepository.findById(replySaveRequestDto.getUserId()) + .orElseThrow(() -> new IllegalArgumentException("댓글쓰기 실패")); + Board board = boardRepository.findById(replySaveRequestDto.getBoardId()) + .orElseThrow(() -> new IllegalArgumentException("댓글쓰기 실패")); + Reply reply = Reply.builder() + .user(user) + .board(board) + .content(replySaveRequestDto.getContent()) + .build(); + replyRepository.save(reply); } } diff --git a/jpablog/src/main/resources/static/js/board.js b/jpablog/src/main/resources/static/js/board.js index de894f5c..ef16b047 100644 --- a/jpablog/src/main/resources/static/js/board.js +++ b/jpablog/src/main/resources/static/js/board.js @@ -70,6 +70,7 @@ let index = { replySave : function () { let data = { boardId: $("#boardId").val(), + userId: $("#userId").val(), content: $("#reply-content").val(), }; $.ajax({ diff --git a/jpablog/src/main/webapp/WEB-INF/views/board/detail.jsp b/jpablog/src/main/webapp/WEB-INF/views/board/detail.jsp index 9ed631de..f982a027 100644 --- a/jpablog/src/main/webapp/WEB-INF/views/board/detail.jsp +++ b/jpablog/src/main/webapp/WEB-INF/views/board/detail.jsp @@ -25,6 +25,7 @@
+