본문 바로가기

Spring Boot/Spring Boot

45 : Springboot(글 수정 기능)

글 수정 기능

  • 패스워드 일치하면 다음과 같은 문구 출력 후 수정되도록 수정하기.

 

 


 

  • putBoard 상단
// putBoard 상단 비밀번호 비교 부분

    public ApiResponse<?> putBoard(int id, BoardDTO boardDTO) throws Exception {
        // board의 비번 검사
        String boardPassword = boardDAO.getBoardById(id).getPassword();
        if(isBoardPasswordMisMatch(boardDTO, boardPassword)){
            return new ApiResponse<>(false, "board password is not match");
        }

getBoardById에서 URL에서 받은 id를 넣고 비밀번호를 받아오는 boardPassword를 boardDTO와 함께

isBoardPasswordMisMatch로 보내준다.

 

 

  • isBoardPasswordMisMatch
// isBoardPasswordMisMatch

    private boolean isBoardPasswordMisMatch(BoardDTO boardDTO, String boardPassword) {
        log.debug("boardPassword="+boardPassword);
        log.debug("requestedPassword="+boardDTO.getPassword());
        boolean isMisMatch = !boardDTO.getPassword().equals(boardPassword);
        log.debug("isMisMatch=" + isMisMatch);
        return isMisMatch;
    }

여기서는 body에서 입력한 비밀번호 boardDTO.getPassword()와 위에서 가져온 boardPassword

를 비교해서 일치하지 않으면"!" isMisMatch = true 를 리턴해서 false와 그에 해당하는 경고문을 출력(리턴)한다

 

 

  • putBoard 하단
//다시 putBoard 하단

        boardDTO.setId(id);
        boardDTO.setWriteDate(LocalDate.now());
        boardDTO.setWriteTime(LocalTime.now());
        int result = boardDAO.putBoard(boardDTO);

        if(result > 0){
            return new ApiResponse<>(true, result + " rows updated");
        }
        throw new Exception("failed to update " + id + " content");
    }

id와 현재시간, 날짜를 넣어주고 body에서 입력한 데이터를 넣어주는 putBoard를 실행한다.

 

 

 


  • 내가 구현한 putBoard 상단
        public ApiResponse<BoardDTO> putBoard(int id, BoardDTO boardDTO) throws Exception {
            //비번 검사
            String pass1 = boardDAO.getBoardById(id).getPassword();
            String pass2 = boardDTO.getPassword();
            log.debug("service password1 ::: "+pass1);
            log.debug("service password2 ::: "+pass2);
            if(!pass1.equals(pass2)){
                log.debug("비번 불일치");
                return new ApiResponse( false,"password incorrect in board id : " + id,null);
            }

나는 body에서 입력한 password인 pass2와, id에 해당하는 password인 pass1을 가져와서 비교 후 

일치하지 않으면 false와 그에 해당하는 경고문을 출력하게 구현했다.

나머지 부분은 리뷰에서 나온 putBoard의 하단부분과 거의 동일!