ReissueFlightSearchUseCase
재발행 검색 유스케이스. PNR 기반으로 재발행 가능한 항공편을 검색한다.
의존성
| 서비스 | 용도 |
|---|---|
| AdapterClient | PNR 기반 운임 조회 |
| FlightSearchService | 폴링 결과 저장 |
메서드
searchFlights
fun searchFlights(
supplier: String,
pnr: String,
supplierIdentificationKey: String?,
searchInfo: SearchInfo,
listKey: UUID,
directOnly: Boolean,
): List<FlightItem>PNR로 재발행 가능 항공편을 검색한다.
| Caller | Callee |
|---|---|
| ReissueFlightSearchUseCase.init | AdapterClient.getFareItinerariesByPnr |
| FlightItem.ofReissue | |
| FlightSearchService.savePolling (COMPLETE) |
에러 처리:
ApiException: 메시지 키와 인자를 포함하여 에러 저장- 기타 예외: 일반 에러 메시지로 저장
init
fun init(
searchInfo: SearchInfo,
supplier: String,
pnr: String,
supplierIdentificationKey: String?,
directOnly: Boolean,
): UUID비동기 재발행 검색을 시작한다.
| Caller | Callee |
|---|---|
| FlightSearchAdminController.searchFlightsByPnr | CacheKeyGenerator.getFlightSearchCacheKey |
| FlightSearchService.savePolling (PENDING) | |
| ReissueFlightSearchUseCase.searchFlights (코루틴) |
재발행 검색 파라미터
| 파라미터 | 설명 |
|---|---|
supplier | GDS/NDC 공급자 코드 |
pnr | 예약 번호 |
supplierIdentificationKey | 공급자 식별 키 (선택) |
searchInfo | 승객 수, 캐빈 등 검색 조건 |
directOnly | 직항만 검색 여부 |
특징
- PNR 기반: 기존 예약 PNR로 재발행 가능 운임 조회
- 비동기 폴링: 긴 조회 시간을 위한 폴링 패턴
- 에러 상세화: ApiException의 메시지 키와 인자 보존
- 재발행 전용:
FlightItem.ofReissue로 재발행용 아이템 생성