글 수정 기능
- 패스워드 일치하면 다음과 같은 문구 출력 후 수정되도록 수정하기.
- 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의 하단부분과 거의 동일!
'Spring Boot > Spring Boot' 카테고리의 다른 글
50 : /test - sequence diagram (0) | 2021.10.19 |
---|---|
49 : /authenticate - Sequence Diagram (Springboot) (0) | 2021.10.14 |
44 : Springboot(글 읽기 비즈니스 로직 추가) (0) | 2021.10.08 |
42 : Springboot (글과 댓글 함께 출력) (0) | 2021.10.07 |
41: Springboot (Delete-board) (0) | 2021.10.01 |