jpablog : write comment(dto)

This commit is contained in:
kim
2021-02-02 14:16:53 +09:00
parent 1a566847a7
commit 20d9d1a8ba
6 changed files with 35 additions and 16 deletions

View File

@@ -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<Integer> replySave(
@PathVariable Long boardId,
@RequestBody Reply reply,
@AuthenticationPrincipal PrincipalDetail principal) {
boardService.댓글쓰기(principal.getUser(), boardId, reply);
public ResponseDto<Integer> replySave(@RequestBody ReplySaveRequestDto dto) {
boardService.댓글쓰기(dto);
return new ResponseDto<>(1, HttpStatus.OK.value());
}

View File

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

View File

@@ -1,5 +1,6 @@
package com.example.jpablog.model;
import com.example.jpablog.dto.ReplySaveRequestDto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;

View File

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

View File

@@ -70,6 +70,7 @@ let index = {
replySave : function () {
let data = {
boardId: $("#boardId").val(),
userId: $("#userId").val(),
content: $("#reply-content").val(),
};
$.ajax({

View File

@@ -25,6 +25,7 @@
<div class="card">
<input type="hidden" id="boardId" value="${board.id}">
<input type="hidden" id="userId" value="${principal.user.id}">
<div class="card-body">
<textarea id="reply-content" class="form-control" rows="1"></textarea>
</div>