프로젝트

16. REVIEW 수정

uni5948 2022. 1. 4. 14:57

16. REVIEW 수정

리뷰를 작성한 member만 수정 가능하다.

 

  • 리뷰 정보 가져오기, 수정하기 추가

1. ReviewService

    // 리뷰 정보 가져오기
    public Review getReview(long no);

    // 리뷰 수정하기
    public void updateReview(Review review);
 
2. ReviewServiceImpl
 
    // 리뷰 정보 가져오기
    @Override
    public Review getReview(long no) {
        Optional<Review> review = rRepository.findById(no);
        return review.orElse(null);
    }

    // 리뷰 수정하기
    @Override
    public void updateReview(Review review) {
        rRepository.save(review);
    }

 

  • 리뷰 수정하기 추가(ReviewController.java)
    //리뷰 수정
    //127.0.0.1:8080/REST/reviewupdate?rno=
    @RequestMapping(value = "/reviewupdate", method = {RequestMethod.PUT},
    consumes = MediaType.ALL_VALUE,
    produces = MediaType.APPLICATION_JSON_VALUE)
    public Map<String, Object> reviewupdatePUT(
        @RequestBody Review review,
        @RequestParam(name = "rno", defaultValue = "0")long reviewNo,
        @RequestHeader("token") String token){
        Map<String, Object> map = new HashMap<String, Object>();
        try{
            String memberid = jwtUtil.extractUsername(token); // 토큰을 통해 회원 정보 찾기
            String reviewid = rService.getReview(reviewNo).getMember().getUserid(); // 리뷰 정보에서 member id 찾기
            if(memberid.equals(reviewid)){
                Review review2 = rService.getReview(reviewNo);
                review2.setContent(review.getContent());
                review2.setRating(review.getRating());
                rService.insertReview(review2);
                map.put("status", 200);
            }
            else{
                map.put("status", 300);
            }
        }
        catch(Exception e){
            e.printStackTrace();
            map.put("status", e.hashCode());
        }
        return map;
    }
 
  • 리뷰 수정하기

리뷰를 등록했던 아이디만 수정이 가능하다.

1번 리뷰

 

리뷰 수정
수정 완료

  • 다른 아이디로 수정할 경우

다른 아이디로 수정할 경우
수정 불가