Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: 공연 후기 회원 검증 로직 추가 #192

Merged
merged 2 commits into from
Jan 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ public EventReviewResponse createEventReview(Long memberId, Long eventId, EventR
}

public EventReviewResponse updateEventReview(Long memberId, Long reviewId, EventReviewUpdateRequest request) {
// TODO : 작성자와 현재 로그인한 사람이 일치하는지 검증 로직 필요
Member member = getMember(memberId);
EventReview eventReview = getEventReview(reviewId);
validateReviewer(eventReview, member);
eventReview.updateEventReview(request.content());
return EventReviewResponse.of(eventReview);
}
Expand All @@ -64,9 +64,9 @@ public List<EventReviewResponse> getEventReviewsForEventByEventId(Long eventId)
}

public void deleteEventReviewById(Long memberId, Long reviewId) {
// TODO : 작성자와 현재 로그인한 사람이 일치하는지 검증 로직 필요
Member member = getMember(memberId);
EventReview eventReview = getEventReview(reviewId);
validateReviewer(eventReview, member);
eventReviewRepository.delete(eventReview);
}

Expand All @@ -79,4 +79,10 @@ private Member getMember(Long memberId) {
return memberRepository.findById(memberId)
.get();
}

private void validateReviewer(EventReview eventReview, Member member) {
if (!eventReview.isSameReviewer(member)) {
throw new EventException(REVIEWER_MISMATCH_EXCEPTION);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ public enum EventErrorCode implements BaseErrorCode {
EVENT_TIME_NOT_FOUND("EVENT TIME NOT FOUND", HttpStatus.NOT_FOUND, "존재하지 않는 회차입니다."),
ALREADY_EXIST_EVENT_TIME("EVENT TIME ALREADY EXISTS", HttpStatus.CONFLICT, "공연에 대한 회차가 이미 존재합니다."),
VALIDATION_FAILED("VALIDATION FAILED", HttpStatus.BAD_REQUEST, "입력값에 대한 검증에 실패했습니다."),
REVIEWER_MISMATCH_EXCEPTION("REVIEWER MISMATCH", HttpStatus.BAD_REQUEST, "리뷰 작성자가 일치하지 않습니다."),
EVENT_REVIEW_NOT_FOUND("EVENT REVIEW NOT FOUND", HttpStatus.NOT_FOUND, "존재하지 않는 공연 리뷰입니다."),
UNSUPPORTED_FILE_EXTENSION("UNSUPPORTED FILE EXTENSION", HttpStatus.BAD_REQUEST, "지원되지 않는 파일 확장자입니다."),
S3_UPLOAD_FAILED_EXCEPTION("S3 UPLOAD FAILED", HttpStatus.INTERNAL_SERVER_ERROR, "S3에 파일 업로드를 실패했습니다.");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,11 @@ public EventReview(Integer score, String content, Event event, Member member) {
public void updateEventReview(String content) {
this.content = content;
}

public boolean isSameReviewer(Member member) {
if (member != null) {
return this.member.equals(member);
}
return false;
}
}