6
6
import io .swagger .v3 .oas .annotations .tags .Tag ;
7
7
import lombok .RequiredArgsConstructor ;
8
8
import muit .backend .apiPayLoad .ApiResponse ;
9
+ import muit .backend .domain .entity .member .Member ;
9
10
import muit .backend .dto .castingDTO .CastingResponseDTO ;
10
11
import muit .backend .dto .musicalDTO .MusicalResponseDTO ;
11
12
import muit .backend .dto .theatreDTO .TheatreResponseDTO ;
13
+ import muit .backend .service .MemberService ;
12
14
import muit .backend .service .musicalService .MusicalService ;
13
15
import org .springframework .data .domain .Page ;
14
16
import org .springframework .data .domain .PageRequest ;
22
24
@ RequestMapping ("/musicals" )
23
25
public class MusicalController {
24
26
private final MusicalService musicalService ;
27
+ private final MemberService memberService ;
25
28
26
29
@ GetMapping ("/{musicalId}" )
27
30
@ Operation (summary = "뮤지컬 단건 조회 API" , description = "특정 뮤지컬을 조회하는 API 입니다." )
28
- public ApiResponse <MusicalResponseDTO .MusicalResultDTO > getMusical (@ PathVariable ("musicalId" ) Long musicalId ) {
29
- return ApiResponse .onSuccess (musicalService .getMusical (musicalId ));
31
+ public ApiResponse <MusicalResponseDTO .MusicalResultDTO > getMusical (@ RequestHeader ("Authorization" ) String accessToken ,
32
+ @ PathVariable ("musicalId" ) Long musicalId ) {
33
+ Member member = memberService .getMemberByToken (accessToken );
34
+ return ApiResponse .onSuccess (musicalService .getMusical (musicalId , member ));
30
35
}
31
36
32
37
33
38
@ GetMapping ("/hot" )
34
39
@ Operation (summary = "뮤지컬 조회 - 리스트 HOT NOW" , description = "Home에서 현재 HOT한 뮤지컬 5개 조회하는 API, HOT한 기준은 불명" )
35
- public ApiResponse <MusicalResponseDTO .MusicalHomeListDTO > getFiveHotMusicals () {
40
+ public ApiResponse <MusicalResponseDTO .MusicalHomeListDTO > getFiveHotMusicals (@ RequestHeader ("Authorization" ) String accessToken ) {
41
+ Member member = memberService .getMemberByToken (accessToken );
36
42
return ApiResponse .onSuccess (musicalService .getFiveMusicals ());
37
43
}
38
44
39
45
@ GetMapping ("/hot/all" )
40
46
@ Operation (summary = "뮤지컬 조회 - 리스트 HOT NOW 전체보기" , description = "현재 HOT한 뮤지컬 전체 조회하는 API, 페이지당 20개" )
41
47
@ Parameter ( name = "page" , description = "페이지를 정수로 입력" )
42
- public ApiResponse <Page <MusicalResponseDTO .MusicalHomeDTO >> getAllHotMusicals (@ RequestParam (defaultValue = "0" , name = "page" ) Integer page ) {
43
-
48
+ public ApiResponse <Page <MusicalResponseDTO .MusicalHomeDTO >> getAllHotMusicals (@ RequestHeader ("Authorization" ) String accessToken ,
49
+ @ RequestParam (defaultValue = "0" , name = "page" ) Integer page ) {
50
+ Member member = memberService .getMemberByToken (accessToken );
44
51
return ApiResponse .onSuccess (musicalService .getAllHotMusicals (page ));
45
52
}
46
53
47
54
@ GetMapping ("/rank" )
48
55
@ Operation (summary = "뮤지컬 조회 - 리스트 RANKING" , description = "Home에서 Ranking 5개 뮤지컬 조회하는 API, Ranking은 playDB 기준" )
49
- public ApiResponse <MusicalResponseDTO .MusicalHomeListDTO > getFiveRankMusicals () {
56
+ public ApiResponse <MusicalResponseDTO .MusicalHomeListDTO > getFiveRankMusicals (@ RequestHeader ("Authorization" ) String accessToken ) {
57
+ Member member = memberService .getMemberByToken (accessToken );
50
58
return ApiResponse .onSuccess (musicalService .getFiveMusicals ());
51
59
}
52
60
53
61
@ GetMapping ("/rank/all" )
54
62
@ Operation (summary = "뮤지컬 조회 - 리스트 RANKING 전체보기" , description = "RANKING 뮤지컬 전체 조회하는 API, 페이지당 20개" )
55
- public ApiResponse <Page <MusicalResponseDTO .MusicalHomeDTO >> getAllRankMusicals (@ RequestParam (defaultValue = "0" , name = "page" ) Integer page ) {
63
+ public ApiResponse <Page <MusicalResponseDTO .MusicalHomeDTO >> getAllRankMusicals (@ RequestHeader ("Authorization" ) String accessToken ,
64
+ @ RequestParam (defaultValue = "0" , name = "page" ) Integer page ) {
65
+ Member member = memberService .getMemberByToken (accessToken );
56
66
return ApiResponse .onSuccess (musicalService .getAllHotMusicals (page ));
57
67
}
58
68
59
69
@ GetMapping ("/open" )
60
70
@ Operation (summary = "뮤지컬 조회 - 리스트 TICKET OPEN" , description = "Home에서 1주일 안에 오픈하는 최대 5개 뮤지컬을 조회하는 API" )
61
- public ApiResponse <List <MusicalResponseDTO .MusicalOpenDTO >> getFiveOpenMusicals () {
71
+ public ApiResponse <List <MusicalResponseDTO .MusicalOpenDTO >> getFiveOpenMusicals (@ RequestHeader ("Authorization" ) String accessToken ) {
72
+ Member member = memberService .getMemberByToken (accessToken );
62
73
return ApiResponse .onSuccess (musicalService .getFiveOpenMusicals ());
63
74
}
64
75
65
76
@ GetMapping ("/open/all" )
66
77
@ Operation (summary = "뮤지컬 조회 - 리스트 TICKET OPEN 전체보기" , description = "오늘 이후 티켓 오픈하는 뮤지컬 전체 조회하는 API, 페이지당 20개" )
67
- public ApiResponse <Page <MusicalResponseDTO .MusicalOpenDTO >> getAllOpenMusicals (@ RequestParam (defaultValue = "0" , name = "page" ) Integer page ) {
78
+ public ApiResponse <Page <MusicalResponseDTO .MusicalOpenDTO >> getAllOpenMusicals (@ RequestHeader ("Authorization" ) String accessToken ,
79
+ @ RequestParam (defaultValue = "0" , name = "page" ) Integer page ) {
80
+ Member member = memberService .getMemberByToken (accessToken );
68
81
return ApiResponse .onSuccess (musicalService .getAllOpenMusicals (page ));
69
82
}
70
83
71
84
@ GetMapping ("/open/today" )
72
85
@ Operation (summary = "뮤지컬 조회 - TICKET OPEN 전체보기에서 오늘 티켓 오픈하는 뮤지컬" , description = "오늘 티켓 오픈하는 뮤지컬을 조회하는 API" )
73
- public ApiResponse <List <MusicalResponseDTO .MusicalTodayOpenDTO >> getTodayOpenMusicals () {
86
+ public ApiResponse <List <MusicalResponseDTO .MusicalTodayOpenDTO >> getTodayOpenMusicals (@ RequestHeader ("Authorization" ) String accessToken ) {
87
+ Member member = memberService .getMemberByToken (accessToken );
74
88
return ApiResponse .onSuccess (musicalService .getTodayOpenMusicals ());
75
89
}
76
90
@@ -79,14 +93,35 @@ public ApiResponse<List<MusicalResponseDTO.MusicalTodayOpenDTO>> getTodayOpenMus
79
93
@ Parameters ({
80
94
@ Parameter (name = "musicalName" , description = "뮤지컬 이름을 검색어로 입력" )
81
95
})
82
- public ApiResponse <MusicalResponseDTO .MusicalHomeListDTO > searchMusicals (@ RequestParam (name = "musicalName" , required = false ) String musicalName ) {
96
+ public ApiResponse <MusicalResponseDTO .MusicalHomeListDTO > searchMusicals (@ RequestHeader ("Authorization" ) String accessToken ,
97
+ @ RequestParam (name = "musicalName" , required = false ) String musicalName ) {
98
+ Member member = memberService .getMemberByToken (accessToken );
83
99
return ApiResponse .onSuccess (musicalService .findMusicalsByName (musicalName ));
84
100
}
85
101
86
102
@ GetMapping ("/{musicalId}/casting" )
87
103
@ Operation (summary = "특정 뮤지컬의 캐스팅 조회 " , description = "뮤지컬의 캐스팅 정보 조회하는 API" )
88
- public ApiResponse <List <CastingResponseDTO .CastingResultListDTO >> getCastingInfo (@ PathVariable Long musicalId ) {
104
+ public ApiResponse <List <CastingResponseDTO .CastingResultListDTO >> getCastingInfo (@ RequestHeader ("Authorization" ) String accessToken ,
105
+ @ PathVariable Long musicalId ) {
106
+ Member member = memberService .getMemberByToken (accessToken );
89
107
return ApiResponse .onSuccess (musicalService .getCastingInfo (musicalId ));
90
108
}
91
109
110
+ @ PostMapping ("/{musicalId}/likes" )
111
+ @ Operation (summary = "특정 뮤지컬 좋아요 " , description = "좋아요한 뮤지컬에 추가하는 API" )
112
+ public ApiResponse <MusicalResponseDTO .MusicalHomeDTO > likeMusicals (@ RequestHeader ("Authorization" ) String accessToken ,
113
+ @ PathVariable ("musicalId" ) Long musicalId ){
114
+ Member member = memberService .getMemberByToken (accessToken );
115
+ return ApiResponse .onSuccess (musicalService .likeMusical (member , musicalId ));
116
+ }
117
+
118
+ @ DeleteMapping ("/{musicalId}/likesCancel" )
119
+ @ Operation (summary = "특정 뮤지컬 좋아요 취소 " , description = "뮤지컬에 누른 좋아요를 취소하는 API" )
120
+ public ApiResponse <MusicalResponseDTO .MusicalHomeDTO > likeCancelMusicals (@ RequestHeader ("Authorization" ) String accessToken ,
121
+ @ PathVariable ("musicalId" ) Long musicalId ){
122
+ Member member = memberService .getMemberByToken (accessToken );
123
+ return ApiResponse .onSuccess (musicalService .likeCancelMusical (member , musicalId ));
124
+ }
125
+
126
+
92
127
}
0 commit comments