FlightSearchInternalController
내부 서비스용 항공편 검색 API 컨트롤러. 예약/재발행 서비스에서 호출하며, 스케줄 기준 그룹핑과 추천 미사용이 특징이다.
의존성
| 서비스 | 용도 |
|---|---|
| FlightSearchService | 검색 결과 조회 |
| StandardFlightSearchUseCase | 표준 검색 초기화 |
| ReissueFlightSearchUseCase | 재발행 검색 초기화 |
| AirlineService | 항공사 정보 조회 |
| BookableDateService | 예약 가능 날짜 범위 |
| LocationService | 위치 정보 조회 |
| BillingService | 빌링 서비스 |
메서드
searchOneWayTripFlightsListKey
fun searchOneWayTripFlightsListKey(
originType: LocationType,
origin: String,
destinationType: LocationType,
destination: String,
outboundDate: LocalDate,
cabins: Set<CabinType>,
adult: Int,
child: Int = 0,
infant: Int = 0,
freeBaggageOnly: Boolean = false,
useCache: Boolean = true
): Map<String, UUID>내부용 편도 항공편 검색 키를 생성한다.
| Caller | Callee |
|---|---|
HTTP GET /internals/flights/search/{...}/{outboundDate} | FlightSearchInternalController.searchFlightsListKey |
searchRoundTripFlightsListKey
fun searchRoundTripFlightsListKey(...): Map<String, UUID>내부용 왕복 항공편 검색 키를 생성한다.
| Caller | Callee |
|---|---|
HTTP GET /internals/flights/search/{...}/{outboundDate}/{inboundDate} | FlightSearchInternalController.searchFlightsListKey |
getFlights
fun getFlights(listKey: UUID): ResponseEntity<List<InternalFlightItemView>>검색 키로 항공편 목록을 조회한다. 외부 API와 달리 InternalFlightItemView를 반환한다.
| Caller | Callee |
|---|---|
HTTP POST /internals/flights/{listKey} | FlightSearchService.getFlightSearch |
| AirlineService.getAirlinesMap | |
| InternalFlightItemView.of |
getCacheKeyStatus
fun getCacheKeyStatus(listKey: UUID): Map<String, String>캐시 키 유효성을 확인한다.
| Caller | Callee |
|---|---|
HTTP GET /internals/flights/{listKey}/status | FlightSearchService.existFlightSearch |
reissueSearch
fun reissueSearch(request: ReissueSearchRequest): Map<String, UUID>재발행용 항공편 검색 키를 생성한다. 기존 PNR 기반으로 재검색한다.
| Caller | Callee |
|---|---|
HTTP POST /internals/flights/reissue | SearchInfo.of |
| LocationService.getLocationInfo | |
| ReissueFlightSearchUseCase.init |
searchFlightsListKey (private)
private fun searchFlightsListKey(
adult: Int,
child: Int,
infant: Int,
freeBaggageOnly: Boolean,
cabins: Set<CabinType>,
useCache: Boolean,
vararg originDestinationLocationInfo: OriginDestinationLocationInfo
): Map<String, UUID>내부용 검색 키 생성 로직. FlightGroupCriteria.SCHEDULE 사용, useRecommendation = false 설정.
외부 API와의 차이점
| 항목 | 외부 API | 내부 API |
|---|---|---|
| FlightGroupCriteria | NONE | SCHEDULE |
| useRecommendation | true | false |
| Response | FlightSearchPageView | InternalFlightItemView |