Skip to content

Commit c1961e7

Browse files
committed
Refactor(#23): ReviewController return type WyplResponseEntity로 변경
1 parent c0876a7 commit c1961e7

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,99 @@
11
package com.wypl.wyplcore.review.controller;
22

3+
import java.time.LocalDate;
4+
5+
import org.springframework.data.mongodb.core.messaging.Message;
6+
import org.springframework.format.annotation.DateTimeFormat;
7+
import org.springframework.http.ResponseEntity;
8+
import org.springframework.web.bind.annotation.DeleteMapping;
9+
import org.springframework.web.bind.annotation.GetMapping;
10+
import org.springframework.web.bind.annotation.PatchMapping;
11+
import org.springframework.web.bind.annotation.PathVariable;
12+
import org.springframework.web.bind.annotation.PostMapping;
13+
import org.springframework.web.bind.annotation.RequestBody;
314
import org.springframework.web.bind.annotation.RequestMapping;
15+
import org.springframework.web.bind.annotation.RequestParam;
416
import org.springframework.web.bind.annotation.RestController;
517

18+
import com.wypl.applicationcommon.WyplResponseEntity;
19+
import com.wypl.wyplcore.auth.domain.AuthMember;
20+
import com.wypl.wyplcore.review.data.request.ReviewCreateRequest;
21+
import com.wypl.wyplcore.review.data.request.ReviewType;
22+
import com.wypl.wyplcore.review.data.request.ReviewUpdateRequest;
23+
import com.wypl.wyplcore.review.data.response.ReviewDetailResponse;
24+
import com.wypl.wyplcore.review.data.response.ReviewIdResponse;
25+
import com.wypl.wyplcore.review.data.response.ReviewListResponse;
26+
import com.wypl.wyplcore.review.service.ReviewModifyService;
27+
import com.wypl.wyplcore.review.service.ReviewReadService;
28+
629
import lombok.RequiredArgsConstructor;
730

831
@RestController
932
@RequiredArgsConstructor
1033
@RequestMapping("/review")
1134
public class ReviewController {
1235

36+
private final ReviewModifyService reviewModifyService;
37+
private final ReviewReadService reviewReadService;
38+
39+
@PostMapping
40+
public WyplResponseEntity<ReviewIdResponse> createReview(
41+
@Authenticated AuthMember authMember,
42+
@RequestBody ReviewCreateRequest reviewCreateRequest
43+
) {
44+
ReviewIdResponse response = reviewModifyService.createReview(authMember.id(), reviewCreateRequest);
45+
return WyplResponseEntity.created(response, "리뷰 등록에 성공했습니다.");
46+
}
47+
48+
@PatchMapping("/{reviewId}")
49+
public WyplResponseEntity<ReviewIdResponse> updateReview(
50+
@Authenticated AuthMember authMember,
51+
@PathVariable int reviewId,
52+
@RequestBody ReviewUpdateRequest reviewUpdateRequest
53+
) {
54+
ReviewIdResponse response = reviewModifyService.updateReview(authMember.id(), reviewId, reviewUpdateRequest);
55+
return WyplResponseEntity.ok(response, "리뷰 수정에 성공했습니다.");
56+
}
57+
58+
@DeleteMapping("/{reviewId}")
59+
public WyplResponseEntity<ReviewIdResponse> deleteReview(
60+
@Authenticated AuthMember authMember,
61+
@PathVariable("reviewId") int reviewId
62+
) {
63+
ReviewIdResponse response = reviewModifyService.deleteReview(authMember.id(), reviewId);
64+
return WyplResponseEntity.ok(response, "리뷰 삭제에 성공 했습니다.");
65+
}
66+
67+
@GetMapping("/detail/{reviewId}")
68+
public WyplResponseEntity<ReviewDetailResponse> getDetailReview(
69+
@Authenticated AuthMember authMember,
70+
@PathVariable int reviewId
71+
) {
72+
ReviewDetailResponse response = reviewReadService.getDetailReview(authMember.id(), reviewId);
73+
return WyplResponseEntity.ok(response, "리뷰 상세 조회에 성공했습니다.");
74+
}
75+
76+
@GetMapping("/{type}")
77+
public WyplResponseEntity<ReviewListResponse> getReviewsByMemberId(
78+
@Authenticated AuthMember authMember,
79+
@PathVariable("type") ReviewType reviewType,
80+
@RequestParam(value = "lastReviewId", required = false) Long lastReviewId,
81+
@RequestParam(value = "startDate", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate startDate,
82+
@RequestParam(value = "startDate", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate endDate
83+
) {
84+
ReviewListResponse response = reviewReadService.getReviews(authMember.id(), lastReviewId, reviewType, startDate,
85+
endDate);
86+
return WyplResponseEntity.ok(response, "리뷰 목록 조회에 성공했습니다.");
87+
}
88+
89+
@GetMapping("/{type}/{scheduleId}")
90+
public WyplResponseEntity<ReviewListResponse> getReviewsBySchedule(
91+
@Authenticated AuthMember authMember,
92+
@PathVariable("type") ReviewType reviewType,
93+
@PathVariable("scheduleId") long scheduleId
94+
) {
95+
ReviewListResponse response = reviewReadService.getReviewsByScheduleId(authMember.id(), scheduleId,
96+
reviewType);
97+
return WyplResponseEntity.ok(response, "일정 별 리뷰 조회에 성공했습니다.");
98+
}
1399
}

0 commit comments

Comments
 (0)