728x90
반응형
이번 포스팅에서는 게시글 기능을 구현 할 것이다.
게시글 삭제 기능은 먼저 삭제하고 싶은 게시글이 로그인한 사용자가 작성한 게시글인지 본인 확인이 필요하다. 본인 확인이 되면 삭제 버튼을 누름으로써 delete로직이 실행된다.
다른 포스팅에서는 HTML폼이 있었지만 삭제에서는 버튼을 누르면 delete로직이 있는 url로 바로 매핑을 해놨기 때문에 HTML코드는 게시글 상세보기 포스팅을 참고하면 될 것 같다
1. postController.java
현재 로그인 한 사용자와 게시글의 작성자가 다를 때는 게시글 삭제 버튼을 누르면 해당 게시글의 작성자가 아닙니다 라며 알람을 띄우게 된다. 사용자와 작성자가 같으면 삭제 로직을 실행 후 게시글을 삭제했다고 알람을 띄운다.
@PostMapping("/delete/{boardId}")
public String PostDelete(@PathVariable("boardId") Long boardId, Principal principal, Model model) {
Post post = postService.findPostDetail(boardId);
Long findSignMemberId = memberServiceImpl.findUsername(principal.getName()).getUserId();
if(findSignMemberId != post.getMember().getUserId()) {
model.addAttribute("msg", "해당 게시글의 작성자가 아닙니다.");
model.addAttribute("url", "/freeboard/detail/"+boardId);
return "alertmessage";
}
log.info(boardId + "posting delete");
postService.deletePost(boardId);
model.addAttribute("msg", "게시글이 삭제되었습니다.");
model.addAttribute("url", "/freeboard");
return "alertmessage";
}
2. postService.java
@Transactional
public void deletePost(Long boardId) {
postRepository.deleteById(boardId);
}
게시글 상세보기 폼에서 URL로 boardId를 받아서 인자로 가져왓기 때문에 이를 사용해서 데이터베이스에 접근하여 boardId를 가진 row를 삭제한다.
현재 데이터베이스에는 이렇게 들어가있는데 5번 글을 삭제해 보려고 한다.
게시글에 작성자가 아니면 작성자가 아니라는 알람을 띄운다.
반대로 게시글의 주인이면 삭제버튼을 누르면 삭제됐다는 알람이 뜬 후 데이터베이스에서 삭제된 것을 볼 수 있다.
만들고 싶은 서비스를 스스로 공부하고 만들어 보면서 기록하는 개인 공부 블로그입니다.
내용 중 최적화가 가능한 부분 혹은 궁금한 점은 언제든지 댓글로 남겨주세요🧐
728x90
반응형
'Projects > 식단 짜주는 웹' 카테고리의 다른 글
[Spring/식단 추천 API] 게시판 글 수정 기능 구현 - 6 (0) | 2023.11.18 |
---|---|
[Spring/식단 추천 API] 게시판 글 상세보기 기능 구현 - 5 (0) | 2023.11.16 |
[Spring/식단 추천 API] 게시판 글 작성 기능 구현 - 4 (1) | 2023.11.16 |
[Spring/식단 추천 API] 게시판 글 목록 페이지 구현 - 3 (0) | 2023.11.16 |
[Spring/식단 추천 API] 로그인 기능 구현 - 2 (1) | 2023.11.11 |