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

[refactor] 내가 쓴 리뷰 조회 API 리팩토링 #111

Open
wants to merge 4 commits into
base: develop
Choose a base branch
from
Open
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
22 changes: 6 additions & 16 deletions src/main/java/hyangyu/server/api/ReviewApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -122,20 +122,10 @@ public ResponseEntity<ReviewListResponse> getFestivalReviews(@PathVariable Long
return ReviewListResponse.newResponse(REVIEW_READ_SUCCESS, response);
}

// @GetMapping("/myreview")
// public ResponseEntity getMyReviews() throws Exception {
// //사용자 검색
// UserDto user = userService.getMyUserWithAuthorities();
// if (user == null) {
// return new ResponseEntity(new ErrorDto(401, "유효하지 않은 사용자입니다."), HttpStatus.BAD_REQUEST);
// }
//
// List<MyReviewDto> myDisplayReviews = displayReviewService.getMyDisplayReviews(user.getUserId());
// List<MyReviewDto> myFairReviews = fairReviewService.getMyFairReviews(user.getUserId());
// List<MyReviewDto> myFestivalReviews = festivalReviewService.getMyFestivalReviews(user.getUserId());
//
// MyReviewsDto myReviewsDto = new MyReviewsDto(myDisplayReviews, myFairReviews, myFestivalReviews);
// MyReviewsResponseDto myReviewsResponseDto = new MyReviewsResponseDto(200, myReviewsDto);
// return new ResponseEntity(myReviewsResponseDto, HttpStatus.OK);
// }
@GetMapping("/myreview")
public ResponseEntity<MyReviewResponse> getMyReviews() {
MyReviewResponseDto response = displayReviewService.getMyReviews();

return MyReviewResponse.newResponse(REVIEW_READ_SUCCESS, response);
}
}
27 changes: 0 additions & 27 deletions src/main/java/hyangyu/server/dto/review/MyReviewDto.java

This file was deleted.

25 changes: 25 additions & 0 deletions src/main/java/hyangyu/server/dto/review/MyReviewResponse.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package hyangyu.server.dto.review;

import hyangyu.server.constants.SuccessCode;
import hyangyu.server.dto.BaseResponse;
import lombok.Getter;
import org.springframework.http.ResponseEntity;

@Getter
public class MyReviewResponse extends BaseResponse {
MyReviewResponseDto data;

private MyReviewResponse(Boolean success, String msg, MyReviewResponseDto data) {
super(success, msg);
this.data = data;
}

public static MyReviewResponse of(Boolean success, String message, MyReviewResponseDto data) {
return new MyReviewResponse(success, message, data);
}

public static ResponseEntity<MyReviewResponse> newResponse(SuccessCode code, MyReviewResponseDto data) {
MyReviewResponse response = MyReviewResponse.of(true, code.getMessage(), data);
return new ResponseEntity<MyReviewResponse>(response, code.getStatus());
}
}
22 changes: 22 additions & 0 deletions src/main/java/hyangyu/server/dto/review/MyReviewResponseDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package hyangyu.server.dto.review;

import lombok.Getter;

import java.util.List;

@Getter
public class MyReviewResponseDto {
List<ReviewDto> display;
List<ReviewDto> fair;
List<ReviewDto> festival;

private MyReviewResponseDto(List<ReviewDto> display, List<ReviewDto> fair, List<ReviewDto> festival) {
this.display = display;
this.fair = fair;
this.festival = festival;
}

public static MyReviewResponseDto of(List<ReviewDto> display, List<ReviewDto> fair, List<ReviewDto> festival) {
return new MyReviewResponseDto(display, fair, festival);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import hyangyu.server.domain.Display;
import hyangyu.server.domain.DisplayReview;
import hyangyu.server.domain.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;

Expand All @@ -16,4 +17,6 @@ public interface DisplayReviewRepository extends JpaRepository<DisplayReview, Lo
DisplayReview getDisplayReview(Long displayId, Long userId);

List<DisplayReview> findAllByDisplayOrderByCreateTimeDesc(Display display);

List<DisplayReview> findAllByUserOrderByReviewIdDesc(User user);
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import hyangyu.server.domain.Fair;
import hyangyu.server.domain.FairReview;
import hyangyu.server.domain.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;

Expand All @@ -16,4 +17,6 @@ public interface FairReviewRepository extends JpaRepository<FairReview, Long> {
FairReview getFairReview(Long fairId, Long userId);

List<FairReview> findAllByFairOrderByCreateTimeDesc(Fair fair);

List<FairReview> findAllByUserOrderByReviewIdDesc(User user);
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import hyangyu.server.domain.Festival;
import hyangyu.server.domain.FestivalReview;
import hyangyu.server.domain.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;

Expand All @@ -16,4 +17,6 @@ public interface FestivalReviewRepository extends JpaRepository<FestivalReview,
FestivalReview getFestivalReview(Long festivalId, Long userId);

List<FestivalReview> findAllByFestivalOrderByCreateTimeDesc(Festival festival);

List<FestivalReview> findAllByUserOrderByReviewIdDesc(User user);
}
25 changes: 21 additions & 4 deletions src/main/java/hyangyu/server/service/DisplayReviewService.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,13 @@
import hyangyu.server.domain.DisplayReview;
import hyangyu.server.domain.DisplayWarn;
import hyangyu.server.domain.User;
import hyangyu.server.dto.review.MyReviewResponseDto;
import hyangyu.server.dto.review.RequestReviewDto;
import hyangyu.server.dto.review.ReviewDto;
import hyangyu.server.dto.review.ReviewListResponseDto;
import hyangyu.server.exception.CustomException;
import hyangyu.server.jwt.SecurityUtil;
import hyangyu.server.repository.DisplayRepository;
import hyangyu.server.repository.DisplayReviewRepository;
import hyangyu.server.repository.DisplayWarnRepository;
import hyangyu.server.repository.UserRepository;
import hyangyu.server.repository.*;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
Expand All @@ -30,6 +28,8 @@
public class DisplayReviewService {

private final DisplayReviewRepository displayReviewRepository;
private final FairReviewRepository fairReviewRepository;
private final FestivalReviewRepository festivalReviewRepository;
private final DisplayWarnRepository displayWarnRepository;
private final UserRepository userRepository;
private final DisplayRepository displayRepository;
Expand Down Expand Up @@ -123,6 +123,23 @@ public ReviewListResponseDto getDisplayReviews(Long displayId) {
return ReviewListResponseDto.of(reviews);
}


public MyReviewResponseDto getMyReviews() {
User user = getUser();

List<ReviewDto> displayReviews = displayReviewRepository.findAllByUserOrderByReviewIdDesc(user).stream()
.map(review -> ReviewDto.of(review.getReviewId(), review.getUser().getImage(), review.getUser().getUsername(), review.getCreateTime(), review.getContent(), review.getScore()))
.collect(Collectors.toList());
List<ReviewDto> fairReviews = fairReviewRepository.findAllByUserOrderByReviewIdDesc(user).stream()
.map(review -> ReviewDto.of(review.getReviewId(), review.getUser().getImage(), review.getUser().getUsername(), review.getCreateTime(), review.getContent(), review.getScore()))
.collect(Collectors.toList());
List<ReviewDto> festivalReviews = festivalReviewRepository.findAllByUserOrderByReviewIdDesc(user).stream()
.map(review -> ReviewDto.of(review.getReviewId(), review.getUser().getImage(), review.getUser().getUsername(), review.getCreateTime(), review.getContent(), review.getScore()))
.collect(Collectors.toList());

return MyReviewResponseDto.of(displayReviews, fairReviews, festivalReviews);
}

private User getUser() {
String userEmail = SecurityUtil.getCurrentEmail()
.orElseThrow(() -> new CustomException(USER_NOT_FOUND));
Expand Down