-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMusicalController.java
78 lines (66 loc) · 4.25 KB
/
MusicalController.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package muit.backend.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import lombok.RequiredArgsConstructor;
import muit.backend.apiPayLoad.ApiResponse;
import muit.backend.dto.musicalDTO.MusicalResponseDTO;
import muit.backend.dto.theatreDTO.TheatreResponseDTO;
import muit.backend.service.musicalService.MusicalService;
import org.springframework.web.bind.annotation.*;
@RestController
@RequiredArgsConstructor
@RequestMapping("/musicals")
public class MusicalController {
private final MusicalService musicalService;
@GetMapping("/{musicalId}")
@Operation(summary = "뮤지컬 단건 조회 API", description = "특정 뮤지컬을 조회하는 API 입니다.")
public ApiResponse<MusicalResponseDTO.MusicalResultDTO> getMusical(@PathVariable("musicalId") Long musicalId) {
return ApiResponse.onSuccess(musicalService.getMusical(musicalId));
}
@GetMapping("/getMusicalInfoFromKopis")
@Operation(summary = "Kopis로부터 뮤지컬 정보 추출하는 API", description = "Kopis 에서 정보를 가져오고 싶은 뮤지컬의 Kopis Id를 입력 (미아 파밀리아 = PF253515)")
public ApiResponse<String> createMusical(@RequestParam("kopisMusicalId") String kopisMusicalId) {
musicalService.createMusical(kopisMusicalId);
return ApiResponse.onSuccess("뮤지컬 정보를 성공적으로 저장하였습니다.");
}
@GetMapping("/hot")
@Operation(summary = "뮤지컬 조회 - 리스트 HOT NOW", description = "Home에서 현재 HOT한 뮤지컬 5개 조회하는 API, HOT한 기준은 불명")
public ApiResponse<MusicalResponseDTO.MusicalHomeListDTO> getFiveHotMusicals() {
return ApiResponse.onSuccess(musicalService.getFiveMusicals());
}
@GetMapping("/hot/all")
@Operation(summary = "뮤지컬 조회 - 리스트 HOT NOW 전체보기", description = "현재 HOT한 뮤지컬 전체 조회하는 API")
@Parameter( name = "page", description = "페이지를 정수로 입력")
public ApiResponse<MusicalResponseDTO.MusicalHomeListDTO> getAllHotMusicals(@RequestParam(defaultValue = "0", name = "page") Integer page) {
return ApiResponse.onSuccess(musicalService.getAllHotMusicals(page));
}
@GetMapping("/rank")
@Operation(summary = "뮤지컬 조회 - 리스트 RANKING", description = "Home에서 Ranking 5개 뮤지컬 조회하는 API, Ranking 기준은 불명")
public ApiResponse<MusicalResponseDTO.MusicalHomeListDTO> getFiveRankMusicals() {
return ApiResponse.onSuccess(musicalService.getFiveMusicals());
}
@GetMapping("/rank/all")
@Operation(summary = "뮤지컬 조회 - 리스트 RANKING 전체보기", description = "RANKING 뮤지컬 전체 조회하는 API")
public ApiResponse<MusicalResponseDTO.MusicalHomeListDTO> getAllRankMusicals(@RequestParam(defaultValue = "0", name = "page") Integer page) {
return ApiResponse.onSuccess(musicalService.getAllHotMusicals(page));
}
@GetMapping("/open")
@Operation(summary = "뮤지컬 조회 - 리스트 TICKET OPEN", description = "Home에서 1주일 안에 오픈하는 최대 5개 뮤지컬을 조회하는 API")
public ApiResponse<MusicalResponseDTO.MusicalOpenListDTO> getFiveOpenMusicals() {
return ApiResponse.onSuccess(musicalService.getFiveOpenMusicals());
}
@GetMapping("/open/all")
@Operation(summary = "뮤지컬 조회 - 리스트 TICKET OPEN 전체보기", description = "오늘 이후 티켓 오픈하는 뮤지컬 전체 조회하는 API")
public ApiResponse<MusicalResponseDTO.MusicalOpenListDTO> getAllOpenMusicals(@RequestParam(defaultValue = "0", name = "page") Integer page) {
return ApiResponse.onSuccess(musicalService.getAllOpenMusicals(page));
}
@GetMapping("")
@Operation(summary = "뮤지컬 검색", description = "상단바에서 뮤지컬을 검색하는 API 입니다.")
@Parameters({
@Parameter(name = "musicalName", description = "뮤지컬 이름을 검색어로 입력")
})
public ApiResponse<MusicalResponseDTO.MusicalHomeListDTO> searchMusicals(@RequestParam("musicalName") String musicalName) {
return ApiResponse.onSuccess(musicalService.findMusicalsByName(musicalName));
}
}