유튜브에서 블로그 만들기 프로젝트를 따라하면서 나의 스킬을 조금더 레벨업 하고자 한다.
IDE : IntelliJ
언어 : Java
DB : MySQL
빌드관리 도구 : Maven
OS : iOS
참고유튜브 : 메타코딩
이제 댓글을 삭제하는 기능을 작성하기 전에 detail.jsp로 이동해서 댓글의 아이디부분을 살짝 수정해준다.
서버에서 개발자도구(F12를 눌러보면)해당 댓글들의 고유번호를 확인할 수 있다.
댓글삭제 버튼에 onclick을 바로 넣어주면서 게시글의 고유번호와 댓글의 고유번호를 같이 넘겨준다.
여기서 다른사람이 작성한 댓글도 삭제가 되면 안되기 때문에 조건문을 활용해서 로그인한 유저의 고유번호와 댓글을 작성한 유저의 고유번호가 일치할때만 삭제버튼이 보이도록 설정해준다.
<button onclick="index.replyDelete(${board.id},${reply.replyId})" class="badge">delete</button>
board.js로 이동해서 아래와 같이 작성해준다. 이번에도 저번과 같이 백틱(`)을 사용해서 url을 완성해준다.
boardApiController로 이동해서 보내준 값을 받아준다.
replyDelete : function(boardId, replyId){
$.ajax({
type : "DELETE",
url : `/api/board/${boardId}/reply/${replyId}`,
dataType : "json"
}).done(function(resp) {
alert("댓글삭제완료");
location.href =`/board/${boardId}`;
}).fail(function(error) {
alert("댓글삭제실패");
alert(JSON.stringify(error));
});
}
위에 입력한 주소대로 deleteMapping으로 받아준다.
그리고 boardService에는 "댓글삭제하기"라는 메서드를 작성하도록한다.
@DeleteMapping("/api/board/{boardId}/reply/{replyId}")
public ResponseDTO<Integer> replyDelete(@PathVariable int replyId){
boardService.댓글삭제하기(replyId);
return new ResponseDTO<Integer>(HttpStatus.OK.value(),1);
}
boardService로 이동해서 replyRepository를 통해서 댓글 고유번호를 이용해서 해당 댓글을 삭제해준다.
서버를 실행해서 테스트를 진행해보면
설정한 얼러트가 나오면서 삭제가 되는걸 확인할 수 있다.
로그아웃 후 다른 아이디로 로그인 후 댓글목록을 확인해보면 내가 작성한 댓글이 아니면 삭제버튼을 아예 볼 수 없는것을 확인할 수 있다.
'프로젝트 > Spring Boot 블로그프로젝트' 카테고리의 다른 글
[블로그프로젝트] 35. 게시글삭제시 오류수정(1) (0) | 2023.06.23 |
---|---|
[블로그프로젝트] 33. 댓글작성하기 (0) | 2023.06.21 |
[블로그프로젝트] 32. 댓글리스트 출력 (0) | 2023.06.21 |
[블로그프로젝트] 31. 카카오로그인(2) (0) | 2023.06.20 |
[블로그프로젝트] 30. 카카오로그인(1) (0) | 2023.06.19 |
댓글