[기초 API 구현] - 디테일 버튼 구현(3) 게시글 삭제

박성규·2022년 5월 24일
0

[스프링 부트]

목록 보기
15/38
post-thumbnail

1js

 function passwordcheck2() {
            let password = $("#password").val()

            let id = $("#id").text()
            let jsonData = { // Body에 첨부할 json 데이터
                "id":id,
                "password":password,
                "result":1
            };
            $.ajax({
                type: "POST",
                url: '/post/detail/password',
                contentType: "application/json",
                data: JSON.stringify(jsonData),
                success: function (response) {
                    if(response["result"] == 1){
                        $("#changediv2").show();
                    }else{
                        alert("비밀번호가 틀립니다.")
                    }
                }
            })
        }
        function deletepost(){
            let password = $("#password").val()
            let id = $("#id").text()
            let jsonData = { // Body에 첨부할 json 데이터
                "id":id,
                "password":password,
                "result":1
            };

            $.ajax({
                type: "DELETE",
                url: '/post/detail/delete',
                contentType: "application/json",
                data: JSON.stringify(jsonData),
                success: function (response) {
                        alert("성공적으로 삭제 되었습니다.")
                        window.location.href = "/"

                    }
            })
        }

2.Controller

@DeleteMapping("/post/detail/delete")
    @ResponseBody
    public void deletedetail(@RequestBody Posting posting){
        postingService.deletedetail(posting);
    }

3.Service

 public void deletedetail(Posting posting) {
        postRepository.delete(
                postRepository.findById(posting.getId()).orElseThrow(() -> new NullPointerException("해당 아이디가 존재하지 않습니다."))
        );
    }

수정하기와 동일한 패턴으로 비밀번호를 체크한 후 완료되면 정말로 취소하시겠습니까? 버튼을 띄운다.

버튼을 클릭하면 controller에서 service를 호출하고, service에선 id값을 find한 후 delete한다.

0개의 댓글

관련 채용 정보