jpablog : write comment(dto)
This commit is contained in:
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.example.jpablog.model;
|
||||
|
||||
import com.example.jpablog.dto.ReplySaveRequestDto;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,6 +70,7 @@ let index = {
|
||||
replySave : function () {
|
||||
let data = {
|
||||
boardId: $("#boardId").val(),
|
||||
userId: $("#userId").val(),
|
||||
content: $("#reply-content").val(),
|
||||
};
|
||||
$.ajax({
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user