{"version":3,"file":"search-CDdkfHpX.js","sources":["../../../../scripts/services/api/search.ts"],"sourcesContent":["import { AdvisorsSearchResponse, CruiseLineNamesSearchResponse, CruisesSearchResponse, HotelsSearchResponse, SearchResponse, ToursSearchResponse } from \"interfaces/responses/product-search-responses\";\r\nimport { ProductQuery } from \"interfaces/cms\";\r\nimport { ProductType } from \"interfaces/enums\";\r\nimport { ProductSearchCriteria } from \"interfaces/product\";\r\nimport { getJSON } from \"services/api/request-manager\";\r\n\r\n/**\r\n * Call the product search endpoint with supplied criteria, returns the entire JSON to be manipulated by components\r\n * @param catalogType\r\n * @param searchCriteria\r\n */\r\nexport function getProductSearchResults(catalogType: ProductType, searchCriteria: ProductSearchCriteria): Promise<SearchResponse<AdvisorsSearchResponse | CruisesSearchResponse | HotelsSearchResponse | ToursSearchResponse>> {\r\n    return new Promise((resolve, reject) => {\r\n        getJSON<SearchResponse<AdvisorsSearchResponse | CruisesSearchResponse | HotelsSearchResponse | ToursSearchResponse>>(`/travel/api/${catalogType}`, searchCriteria).then((resultsJSON) => {\r\n            resolve(resultsJSON);\r\n        }, (error: Error) => {\r\n            reject(error);\r\n        });\r\n    });\r\n}\r\n\r\n/**\r\n * Call the product endpoint with a query, returns the entire JSON to be manipulated by components\r\n * @param productType\r\n * @param query\r\n */\r\nexport function getProducts(productType: ProductType | \"properties\", query: ProductQuery): Promise<SearchResponse<CruisesSearchResponse | HotelsSearchResponse | ToursSearchResponse>> {\r\n    return new Promise((resolve, reject) => {\r\n        getJSON<SearchResponse<CruisesSearchResponse | HotelsSearchResponse | ToursSearchResponse>>(`/travel/api/search/${productType}`, query).then((resultsJSON) => {\r\n            resolve(resultsJSON);\r\n        }, (error: Error) => {\r\n            reject(error);\r\n        });\r\n    });\r\n}\r\n\r\n/**\r\n * Call the product endpoint with a query, returns the entire JSON to be manipulated by components\r\n * @param facetCollectionKey\r\n */\r\nexport function getAdvisorFacetValues(facetCollectionKey: string): Promise<string[]> {\r\n    return new Promise((resolve, reject) => {\r\n        getJSON<string[]>(`/travel/api/search/advisor/facet-values/${facetCollectionKey}`).then((facets) => {\r\n            resolve(facets);\r\n        }, (error: Error) => {\r\n            reject(error);\r\n        });\r\n    });\r\n}\r\n\r\n/**\r\n * Call the cruise line names endpoint to get the list of cruise line names\r\n */\r\nexport function getCruiseLineNames(): Promise<string[]> {\r\n    return new Promise((resolve, reject) => {\r\n        getJSON<CruiseLineNamesSearchResponse>(\"/travel/api/cruises/cruise-lines-names\").then((response) => {\r\n            resolve(response.names?.length ? response.names : []);\r\n        }, (error: Error) => {\r\n            reject(error);\r\n        });\r\n    });\r\n}"],"names":["getProductSearchResults","catalogType","searchCriteria","resolve","reject","getJSON","resultsJSON","error","getProducts","productType","query","getAdvisorFacetValues","facetCollectionKey","facets","getCruiseLineNames","response","_a"],"mappings":"6CAWgB,SAAAA,EAAwBC,EAA0BC,EAA6J,CAC3N,OAAO,IAAI,QAAQ,CAACC,EAASC,IAAW,CACpCC,EAAqH,eAAeJ,CAAW,GAAIC,CAAc,EAAE,KAAMI,GAAgB,CACrLH,EAAQG,CAAW,CACvB,EAAIC,GAAiB,CACjBH,EAAOG,CAAK,CAAA,CACf,CAAA,CACJ,CACL,CAOgB,SAAAC,EAAYC,EAAyCC,EAAkH,CACnL,OAAO,IAAI,QAAQ,CAACP,EAASC,IAAW,CACpCC,EAA4F,sBAAsBI,CAAW,GAAIC,CAAK,EAAE,KAAMJ,GAAgB,CAC1JH,EAAQG,CAAW,CACvB,EAAIC,GAAiB,CACjBH,EAAOG,CAAK,CAAA,CACf,CAAA,CACJ,CACL,CAMO,SAASI,EAAsBC,EAA+C,CACjF,OAAO,IAAI,QAAQ,CAACT,EAASC,IAAW,CACpCC,EAAkB,2CAA2CO,CAAkB,EAAE,EAAE,KAAMC,GAAW,CAChGV,EAAQU,CAAM,CAClB,EAAIN,GAAiB,CACjBH,EAAOG,CAAK,CAAA,CACf,CAAA,CACJ,CACL,CAKO,SAASO,GAAwC,CACpD,OAAO,IAAI,QAAQ,CAACX,EAASC,IAAW,CACpCC,EAAuC,wCAAwC,EAAE,KAAMU,GAAa,OAChGZ,GAAQa,EAAAD,EAAS,QAAT,MAAAC,EAAgB,OAASD,EAAS,MAAQ,CAAA,CAAE,CACxD,EAAIR,GAAiB,CACjBH,EAAOG,CAAK,CAAA,CACf,CAAA,CACJ,CACL"}