@mirai/core 0.3.394 → 0.3.396
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/components/Booking/Booking.l10n.js +5 -2
- package/build/components/Booking/Booking.l10n.js.map +1 -1
- package/build/components/Booking/helpers/getButtonPaymentKey.js +35 -0
- package/build/components/Booking/helpers/getButtonPaymentKey.js.map +1 -0
- package/build/components/Booking/helpers/getButtonPaymentKey.l10n.js +21 -0
- package/build/components/Booking/helpers/getButtonPaymentKey.l10n.js.map +1 -0
- package/build/components/Booking/helpers/index.js +4 -4
- package/build/components/Booking/helpers/index.js.map +1 -1
- package/build/components/Booking/partials/Booking.Payment.js +8 -2
- package/build/components/Booking/partials/Booking.Payment.js.map +1 -1
- package/build/components/Chat/Chat.js +1 -1
- package/build/components/Chat/Chat.js.map +1 -1
- package/build/components/{helpers → Checkout/helpers}/getButtonPaymentKey.js +2 -4
- package/build/components/Checkout/helpers/getButtonPaymentKey.js.map +1 -0
- package/build/components/{helpers → Checkout/helpers}/getButtonPaymentKey.l10n.js +0 -3
- package/build/components/Checkout/helpers/getButtonPaymentKey.l10n.js.map +1 -0
- package/build/components/Checkout/helpers/index.js +11 -0
- package/build/components/Checkout/helpers/index.js.map +1 -1
- package/build/components/Checkout/partials/Checkout.Confirmation.js +2 -1
- package/build/components/Checkout/partials/Checkout.Confirmation.js.map +1 -1
- package/build/components/Finder/components/Places/Places.js +1 -0
- package/build/components/Finder/components/Places/Places.js.map +1 -1
- package/build/components/Finder/components/Places/__tests__/__snapshots__/Places.test.js.snap +4 -28
- package/build/components/Rates/Rates.js +2 -3
- package/build/components/Rates/Rates.js.map +1 -1
- package/build/components/Rates/components/ModalExtras/ModalExtras.constants.js +17 -0
- package/build/components/Rates/components/ModalExtras/ModalExtras.constants.js.map +1 -0
- package/build/components/Rates/components/ModalExtras/helpers/getCaption.js +10 -10
- package/build/components/Rates/components/ModalExtras/helpers/getCaption.js.map +1 -1
- package/build/components/Session/Session.Account.js +3 -5
- package/build/components/Session/Session.Account.js.map +1 -1
- package/build/components/Session/Session.module.css +6 -6
- package/build/components/helpers/index.js +0 -11
- package/build/components/helpers/index.js.map +1 -1
- package/build/helpers/fetchConfig.js +1 -1
- package/build/helpers/fetchConfig.js.map +1 -1
- package/build/helpers/getClubUrl.js +1 -1
- package/build/helpers/getClubUrl.js.map +1 -1
- package/package.json +1 -2
- package/build/components/Finder/helpers/__tests__/__mocks__/chain.json +0 -1113
- package/build/components/Finder/helpers/__tests__/__mocks__/hotel.json +0 -199
- package/build/components/helpers/getButtonPaymentKey.js.map +0 -1
- package/build/components/helpers/getButtonPaymentKey.l10n.js.map +0 -1
- package/build/services/Club/__tests__/__mocks__/get.json +0 -66
- package/build/services/Club/constants.js +0 -10
- package/build/services/Club/constants.js.map +0 -1
- package/build/services/Club/get.js +0 -35
- package/build/services/Club/get.js.map +0 -1
- package/build/services/Club/index.js +0 -11
- package/build/services/Club/index.js.map +0 -1
- package/build/services/Engine/__tests__/__mocks__/chain.json +0 -2695
- package/build/services/Engine/__tests__/__mocks__/hotel.json +0 -184
- package/build/services/Engine/constants.js +0 -10
- package/build/services/Engine/constants.js.map +0 -1
- package/build/services/Engine/get.js +0 -31
- package/build/services/Engine/get.js.map +0 -1
- package/build/services/Engine/index.js +0 -11
- package/build/services/Engine/index.js.map +0 -1
- package/build/services/Lisa/action.js +0 -28
- package/build/services/Lisa/action.js.map +0 -1
- package/build/services/Lisa/index.js +0 -17
- package/build/services/Lisa/index.js.map +0 -1
- package/build/services/Lisa/message.js +0 -26
- package/build/services/Lisa/message.js.map +0 -1
- package/build/services/Lisa/status.js +0 -13
- package/build/services/Lisa/status.js.map +0 -1
- package/build/services/Lisa/welcome.js +0 -25
- package/build/services/Lisa/welcome.js.map +0 -1
- package/build/services/Rates/__tests__/__mocks__/extras-success-all.json +0 -264
- package/build/services/Rates/__tests__/__mocks__/extras-success.json +0 -1000
- package/build/services/Rates/__tests__/__mocks__/rates-response-cancel-types.json +0 -2958
- package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes-no-local.json +0 -870
- package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes.json +0 -2250
- package/build/services/Rates/__tests__/__mocks__/rates-response.json +0 -500
- package/build/services/Rates/__tests__/__mocks__/rates-success-cancel-types.json +0 -32481
- package/build/services/Rates/__tests__/__mocks__/rates-success-no-taxes-no-local.json +0 -6674
- package/build/services/Rates/__tests__/__mocks__/rates-success-no-taxes.json +0 -16508
- package/build/services/Rates/__tests__/__mocks__/rates-success.json +0 -5648
- package/build/services/Rates/constants.js +0 -121
- package/build/services/Rates/constants.js.map +0 -1
- package/build/services/Rates/extras.js +0 -14
- package/build/services/Rates/extras.js.map +0 -1
- package/build/services/Rates/extrasParsed.js +0 -197
- package/build/services/Rates/extrasParsed.js.map +0 -1
- package/build/services/Rates/get.js +0 -34
- package/build/services/Rates/get.js.map +0 -1
- package/build/services/Rates/helpers/compareSuggestions.js +0 -40
- package/build/services/Rates/helpers/compareSuggestions.js.map +0 -1
- package/build/services/Rates/helpers/getCalendarSuggestions.js +0 -72
- package/build/services/Rates/helpers/getCalendarSuggestions.js.map +0 -1
- package/build/services/Rates/helpers/getDisabledDates.js +0 -35
- package/build/services/Rates/helpers/getDisabledDates.js.map +0 -1
- package/build/services/Rates/helpers/getIncrements.js +0 -69
- package/build/services/Rates/helpers/getIncrements.js.map +0 -1
- package/build/services/Rates/helpers/getItems.js +0 -127
- package/build/services/Rates/helpers/getItems.js.map +0 -1
- package/build/services/Rates/helpers/getLanguage.js +0 -9
- package/build/services/Rates/helpers/getLanguage.js.map +0 -1
- package/build/services/Rates/helpers/getMinStayDates.js +0 -36
- package/build/services/Rates/helpers/getMinStayDates.js.map +0 -1
- package/build/services/Rates/helpers/getOccupationSuggestions.js +0 -198
- package/build/services/Rates/helpers/getOccupationSuggestions.js.map +0 -1
- package/build/services/Rates/helpers/getPrice.js +0 -22
- package/build/services/Rates/helpers/getPrice.js.map +0 -1
- package/build/services/Rates/helpers/getRooms.js +0 -65
- package/build/services/Rates/helpers/getRooms.js.map +0 -1
- package/build/services/Rates/helpers/getTaxesType.js +0 -26
- package/build/services/Rates/helpers/getTaxesType.js.map +0 -1
- package/build/services/Rates/helpers/index.js +0 -138
- package/build/services/Rates/helpers/index.js.map +0 -1
- package/build/services/Rates/helpers/normalizePrice.js +0 -15
- package/build/services/Rates/helpers/normalizePrice.js.map +0 -1
- package/build/services/Rates/helpers/parseAmenities.js +0 -87
- package/build/services/Rates/helpers/parseAmenities.js.map +0 -1
- package/build/services/Rates/helpers/parseDiscount.js +0 -48
- package/build/services/Rates/helpers/parseDiscount.js.map +0 -1
- package/build/services/Rates/helpers/parseExternalToken.js +0 -24
- package/build/services/Rates/helpers/parseExternalToken.js.map +0 -1
- package/build/services/Rates/helpers/parseHotelDiscount.js +0 -29
- package/build/services/Rates/helpers/parseHotelDiscount.js.map +0 -1
- package/build/services/Rates/helpers/parseItem.js +0 -216
- package/build/services/Rates/helpers/parseItem.js.map +0 -1
- package/build/services/Rates/helpers/parseTracking.js +0 -140
- package/build/services/Rates/helpers/parseTracking.js.map +0 -1
- package/build/services/Rates/helpers/parseUnavailability.js +0 -117
- package/build/services/Rates/helpers/parseUnavailability.js.map +0 -1
- package/build/services/Rates/hotels.js +0 -138
- package/build/services/Rates/hotels.js.map +0 -1
- package/build/services/Rates/index.js +0 -13
- package/build/services/Rates/index.js.map +0 -1
- package/build/services/Rates/rates.js +0 -141
- package/build/services/Rates/rates.js.map +0 -1
- package/build/services/index.js +0 -50
- package/build/services/index.js.map +0 -1
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.parseTracking = void 0;
|
|
7
|
-
const parseBoards = (boards, localTaxesIncluded) => Object.fromEntries(Object.entries(boards).map(function () {
|
|
8
|
-
let [id, {
|
|
9
|
-
detail,
|
|
10
|
-
boardGroupName,
|
|
11
|
-
name,
|
|
12
|
-
originalAvgPrice,
|
|
13
|
-
totalBasePrice,
|
|
14
|
-
totalLocalTaxes,
|
|
15
|
-
totalPriceWithTaxes
|
|
16
|
-
} = {}] = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
17
|
-
return [id, {
|
|
18
|
-
boardGroupName,
|
|
19
|
-
detail: detail.map(function () {
|
|
20
|
-
let {
|
|
21
|
-
priceWithoutTaxes,
|
|
22
|
-
priceWithTaxes
|
|
23
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
24
|
-
return {
|
|
25
|
-
priceWithoutTaxes,
|
|
26
|
-
priceWithTaxes
|
|
27
|
-
};
|
|
28
|
-
}),
|
|
29
|
-
id,
|
|
30
|
-
name,
|
|
31
|
-
originalAvgPrice,
|
|
32
|
-
totalBasePrice,
|
|
33
|
-
totalPrice: totalPriceWithTaxes + (!localTaxesIncluded ? totalLocalTaxes : 0),
|
|
34
|
-
totalLocalTaxes,
|
|
35
|
-
totalPriceWithTaxes
|
|
36
|
-
}];
|
|
37
|
-
}));
|
|
38
|
-
const parseRates = (rates, localTaxesIncluded) => Object.fromEntries(Object.entries(rates).map(function () {
|
|
39
|
-
let [id, {
|
|
40
|
-
boardOptions,
|
|
41
|
-
name,
|
|
42
|
-
cancellationPolicyTypeEnum,
|
|
43
|
-
sortedKeysBoards
|
|
44
|
-
} = {}] = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
45
|
-
return [id, {
|
|
46
|
-
boardOptions: parseBoards(boardOptions, localTaxesIncluded),
|
|
47
|
-
cancellationPolicyTypeEnum,
|
|
48
|
-
id,
|
|
49
|
-
name,
|
|
50
|
-
sortedKeysBoards
|
|
51
|
-
}];
|
|
52
|
-
}));
|
|
53
|
-
const parseOptions = (options, localTaxesIncluded) => Object.fromEntries(Object.entries(options).map(function () {
|
|
54
|
-
let [id, {
|
|
55
|
-
numAdults,
|
|
56
|
-
numFirstRangeChildren,
|
|
57
|
-
numSecondRangeChildren,
|
|
58
|
-
rates
|
|
59
|
-
} = {}] = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
60
|
-
return [id, {
|
|
61
|
-
numAdults,
|
|
62
|
-
numFirstRangeChildren,
|
|
63
|
-
numSecondRangeChildren,
|
|
64
|
-
rates: parseRates(rates, localTaxesIncluded)
|
|
65
|
-
}];
|
|
66
|
-
}));
|
|
67
|
-
const parseTracking = function () {
|
|
68
|
-
let response = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
69
|
-
let isHotel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
70
|
-
const {
|
|
71
|
-
currencyCode,
|
|
72
|
-
currenciesInfo: {
|
|
73
|
-
mapCurrencies: currencies
|
|
74
|
-
} = {},
|
|
75
|
-
hotelInfoBAR: hotels = [],
|
|
76
|
-
multiroom,
|
|
77
|
-
propertyName,
|
|
78
|
-
propertyType,
|
|
79
|
-
resultCode: status,
|
|
80
|
-
roomTypes,
|
|
81
|
-
showLocalTaxes: localTaxesIncluded,
|
|
82
|
-
userCountry: country,
|
|
83
|
-
userCurrency,
|
|
84
|
-
vatIncluded: taxesIncluded
|
|
85
|
-
} = response;
|
|
86
|
-
return {
|
|
87
|
-
...(isHotel ? {
|
|
88
|
-
country,
|
|
89
|
-
hotelInfo: {
|
|
90
|
-
currency: currencies[currencyCode],
|
|
91
|
-
propertyName,
|
|
92
|
-
propertyType
|
|
93
|
-
},
|
|
94
|
-
localTaxesIncluded,
|
|
95
|
-
multiroom,
|
|
96
|
-
rates: Object.entries(roomTypes).map(function () {
|
|
97
|
-
let [, {
|
|
98
|
-
amountAvailable,
|
|
99
|
-
id: roomId,
|
|
100
|
-
name,
|
|
101
|
-
occupationOptions,
|
|
102
|
-
sortedKeysOccupations
|
|
103
|
-
} = {}] = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
104
|
-
return {
|
|
105
|
-
amountAvailable,
|
|
106
|
-
id: roomId,
|
|
107
|
-
name,
|
|
108
|
-
occupationOptions: parseOptions(occupationOptions, localTaxesIncluded),
|
|
109
|
-
sortedKeysOccupations
|
|
110
|
-
};
|
|
111
|
-
}),
|
|
112
|
-
taxesIncluded,
|
|
113
|
-
userCurrency: currencies[userCurrency]
|
|
114
|
-
} : {
|
|
115
|
-
hotelInfoBAR: hotels.map(function () {
|
|
116
|
-
let {
|
|
117
|
-
currency,
|
|
118
|
-
bestAvailableRate: {
|
|
119
|
-
averagePrice,
|
|
120
|
-
totalPrice
|
|
121
|
-
},
|
|
122
|
-
hotelName,
|
|
123
|
-
idTokenProvider
|
|
124
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
125
|
-
return {
|
|
126
|
-
currency,
|
|
127
|
-
bestAvailableRate: {
|
|
128
|
-
averagePrice,
|
|
129
|
-
totalPrice
|
|
130
|
-
},
|
|
131
|
-
hotelName,
|
|
132
|
-
idTokenProvider
|
|
133
|
-
};
|
|
134
|
-
})
|
|
135
|
-
}),
|
|
136
|
-
status: isHotel ? status : hotels.length > 0 ? 'AVAILABILITY' : 'NO_AVAILABILITY'
|
|
137
|
-
};
|
|
138
|
-
};
|
|
139
|
-
exports.parseTracking = parseTracking;
|
|
140
|
-
//# sourceMappingURL=parseTracking.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseTracking.js","names":["parseBoards","boards","localTaxesIncluded","Object","fromEntries","entries","map","id","detail","boardGroupName","name","originalAvgPrice","totalBasePrice","totalLocalTaxes","totalPriceWithTaxes","arguments","length","undefined","priceWithoutTaxes","priceWithTaxes","totalPrice","parseRates","rates","boardOptions","cancellationPolicyTypeEnum","sortedKeysBoards","parseOptions","options","numAdults","numFirstRangeChildren","numSecondRangeChildren","parseTracking","response","isHotel","currencyCode","currenciesInfo","mapCurrencies","currencies","hotelInfoBAR","hotels","multiroom","propertyName","propertyType","resultCode","status","roomTypes","showLocalTaxes","userCountry","country","userCurrency","vatIncluded","taxesIncluded","hotelInfo","currency","amountAvailable","roomId","occupationOptions","sortedKeysOccupations","bestAvailableRate","averagePrice","hotelName","idTokenProvider","exports"],"sources":["../../../../src/services/Rates/helpers/parseTracking.js"],"sourcesContent":["const parseBoards = (boards, localTaxesIncluded) =>\n Object.fromEntries(\n Object.entries(boards).map(\n ([\n id,\n { detail, boardGroupName, name, originalAvgPrice, totalBasePrice, totalLocalTaxes, totalPriceWithTaxes } = {},\n ] = []) => [\n id,\n {\n boardGroupName,\n detail: detail.map(({ priceWithoutTaxes, priceWithTaxes } = {}) => ({\n priceWithoutTaxes,\n priceWithTaxes,\n })),\n id,\n name,\n originalAvgPrice,\n totalBasePrice,\n totalPrice: totalPriceWithTaxes + (!localTaxesIncluded ? totalLocalTaxes : 0),\n totalLocalTaxes,\n totalPriceWithTaxes,\n },\n ],\n ),\n );\n\nconst parseRates = (rates, localTaxesIncluded) =>\n Object.fromEntries(\n Object.entries(rates).map(\n ([id, { boardOptions, name, cancellationPolicyTypeEnum, sortedKeysBoards } = {}] = []) => [\n id,\n {\n boardOptions: parseBoards(boardOptions, localTaxesIncluded),\n cancellationPolicyTypeEnum,\n id,\n name,\n sortedKeysBoards,\n },\n ],\n ),\n );\n\nconst parseOptions = (options, localTaxesIncluded) =>\n Object.fromEntries(\n Object.entries(options).map(\n ([id, { numAdults, numFirstRangeChildren, numSecondRangeChildren, rates } = {}] = []) => [\n id,\n { numAdults, numFirstRangeChildren, numSecondRangeChildren, rates: parseRates(rates, localTaxesIncluded) },\n ],\n ),\n );\n\nexport const parseTracking = (response = {}, isHotel = true) => {\n const {\n currencyCode,\n currenciesInfo: { mapCurrencies: currencies } = {},\n hotelInfoBAR: hotels = [],\n multiroom,\n propertyName,\n propertyType,\n resultCode: status,\n roomTypes,\n showLocalTaxes: localTaxesIncluded,\n userCountry: country,\n userCurrency,\n vatIncluded: taxesIncluded,\n } = response;\n\n return {\n ...(isHotel\n ? {\n country,\n hotelInfo: {\n currency: currencies[currencyCode],\n propertyName,\n propertyType,\n },\n localTaxesIncluded,\n multiroom,\n rates: Object.entries(roomTypes).map(\n ([, { amountAvailable, id: roomId, name, occupationOptions, sortedKeysOccupations } = {}] = []) => ({\n amountAvailable,\n id: roomId,\n name,\n occupationOptions: parseOptions(occupationOptions, localTaxesIncluded),\n sortedKeysOccupations,\n }),\n ),\n taxesIncluded,\n userCurrency: currencies[userCurrency],\n }\n : {\n hotelInfoBAR: hotels.map(\n ({ currency, bestAvailableRate: { averagePrice, totalPrice }, hotelName, idTokenProvider } = {}) => ({\n currency,\n bestAvailableRate: { averagePrice, totalPrice },\n hotelName,\n idTokenProvider,\n }),\n ),\n }),\n status: isHotel ? status : hotels.length > 0 ? 'AVAILABILITY' : 'NO_AVAILABILITY',\n };\n};\n"],"mappings":";;;;;;AAAA,MAAMA,WAAW,GAAGA,CAACC,MAAM,EAAEC,kBAAkB,KAC7CC,MAAM,CAACC,WAAW,CAChBD,MAAM,CAACE,OAAO,CAACJ,MAAM,CAAC,CAACK,GAAG,CACxB;EAAA,IAAC,CACCC,EAAE,EACF;IAAEC,MAAM;IAAEC,cAAc;IAAEC,IAAI;IAAEC,gBAAgB;IAAEC,cAAc;IAAEC,eAAe;IAAEC;EAAoB,CAAC,GAAG,CAAC,CAAC,CAC9G,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAAA,OAAK,CACTR,EAAE,EACF;IACEE,cAAc;IACdD,MAAM,EAAEA,MAAM,CAACF,GAAG,CAAC;MAAA,IAAC;QAAEY,iBAAiB;QAAEC;MAAe,CAAC,GAAAJ,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;MAAA,OAAM;QAClEG,iBAAiB;QACjBC;MACF,CAAC;IAAA,CAAC,CAAC;IACHZ,EAAE;IACFG,IAAI;IACJC,gBAAgB;IAChBC,cAAc;IACdQ,UAAU,EAAEN,mBAAmB,IAAI,CAACZ,kBAAkB,GAAGW,eAAe,GAAG,CAAC,CAAC;IAC7EA,eAAe;IACfC;EACF,CAAC,CACF;AAAA,CACH,CACF,CAAC;AAEH,MAAMO,UAAU,GAAGA,CAACC,KAAK,EAAEpB,kBAAkB,KAC3CC,MAAM,CAACC,WAAW,CAChBD,MAAM,CAACE,OAAO,CAACiB,KAAK,CAAC,CAAChB,GAAG,CACvB;EAAA,IAAC,CAACC,EAAE,EAAE;IAAEgB,YAAY;IAAEb,IAAI;IAAEc,0BAA0B;IAAEC;EAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAAV,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAAA,OAAK,CACxFR,EAAE,EACF;IACEgB,YAAY,EAAEvB,WAAW,CAACuB,YAAY,EAAErB,kBAAkB,CAAC;IAC3DsB,0BAA0B;IAC1BjB,EAAE;IACFG,IAAI;IACJe;EACF,CAAC,CACF;AAAA,CACH,CACF,CAAC;AAEH,MAAMC,YAAY,GAAGA,CAACC,OAAO,EAAEzB,kBAAkB,KAC/CC,MAAM,CAACC,WAAW,CAChBD,MAAM,CAACE,OAAO,CAACsB,OAAO,CAAC,CAACrB,GAAG,CACzB;EAAA,IAAC,CAACC,EAAE,EAAE;IAAEqB,SAAS;IAAEC,qBAAqB;IAAEC,sBAAsB;IAAER;EAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAAP,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAAA,OAAK,CACvFR,EAAE,EACF;IAAEqB,SAAS;IAAEC,qBAAqB;IAAEC,sBAAsB;IAAER,KAAK,EAAED,UAAU,CAACC,KAAK,EAAEpB,kBAAkB;EAAE,CAAC,CAC3G;AAAA,CACH,CACF,CAAC;AAEI,MAAM6B,aAAa,GAAG,SAAAA,CAAA,EAAmC;EAAA,IAAlCC,QAAQ,GAAAjB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,IAAEkB,OAAO,GAAAlB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EACzD,MAAM;IACJmB,YAAY;IACZC,cAAc,EAAE;MAAEC,aAAa,EAAEC;IAAW,CAAC,GAAG,CAAC,CAAC;IAClDC,YAAY,EAAEC,MAAM,GAAG,EAAE;IACzBC,SAAS;IACTC,YAAY;IACZC,YAAY;IACZC,UAAU,EAAEC,MAAM;IAClBC,SAAS;IACTC,cAAc,EAAE5C,kBAAkB;IAClC6C,WAAW,EAAEC,OAAO;IACpBC,YAAY;IACZC,WAAW,EAAEC;EACf,CAAC,GAAGnB,QAAQ;EAEZ,OAAO;IACL,IAAIC,OAAO,GACP;MACEe,OAAO;MACPI,SAAS,EAAE;QACTC,QAAQ,EAAEhB,UAAU,CAACH,YAAY,CAAC;QAClCO,YAAY;QACZC;MACF,CAAC;MACDxC,kBAAkB;MAClBsC,SAAS;MACTlB,KAAK,EAAEnB,MAAM,CAACE,OAAO,CAACwC,SAAS,CAAC,CAACvC,GAAG,CAClC;QAAA,IAAC,GAAG;UAAEgD,eAAe;UAAE/C,EAAE,EAAEgD,MAAM;UAAE7C,IAAI;UAAE8C,iBAAiB;UAAEC;QAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAA1C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;QAAA,OAAM;UAClGuC,eAAe;UACf/C,EAAE,EAAEgD,MAAM;UACV7C,IAAI;UACJ8C,iBAAiB,EAAE9B,YAAY,CAAC8B,iBAAiB,EAAEtD,kBAAkB,CAAC;UACtEuD;QACF,CAAC;MAAA,CACH,CAAC;MACDN,aAAa;MACbF,YAAY,EAAEZ,UAAU,CAACY,YAAY;IACvC,CAAC,GACD;MACEX,YAAY,EAAEC,MAAM,CAACjC,GAAG,CACtB;QAAA,IAAC;UAAE+C,QAAQ;UAAEK,iBAAiB,EAAE;YAAEC,YAAY;YAAEvC;UAAW,CAAC;UAAEwC,SAAS;UAAEC;QAAgB,CAAC,GAAA9C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;QAAA,OAAM;UACnGsC,QAAQ;UACRK,iBAAiB,EAAE;YAAEC,YAAY;YAAEvC;UAAW,CAAC;UAC/CwC,SAAS;UACTC;QACF,CAAC;MAAA,CACH;IACF,CAAC,CAAC;IACNjB,MAAM,EAAEX,OAAO,GAAGW,MAAM,GAAGL,MAAM,CAACvB,MAAM,GAAG,CAAC,GAAG,cAAc,GAAG;EAClE,CAAC;AACH,CAAC;AAAC8C,OAAA,CAAA/B,aAAA,GAAAA,aAAA"}
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.parseUnavailability = void 0;
|
|
7
|
-
var _getCalendarSuggestions = require("./getCalendarSuggestions");
|
|
8
|
-
var _getDisabledDates = require("./getDisabledDates");
|
|
9
|
-
var _getMinStayDates = require("./getMinStayDates");
|
|
10
|
-
var _getOccupationSuggestions = require("./getOccupationSuggestions");
|
|
11
|
-
var _getTaxesType = require("./getTaxesType");
|
|
12
|
-
var _Core = require("../../../Core.constants");
|
|
13
|
-
const BY_CHECK_IN = 'BY_CHECKIN';
|
|
14
|
-
const parseUnavailability = function () {
|
|
15
|
-
let {
|
|
16
|
-
availabilitySuggestions: availability,
|
|
17
|
-
firstChildInterval,
|
|
18
|
-
hotelEmail: email,
|
|
19
|
-
hotelPhone: phone,
|
|
20
|
-
messages: {
|
|
21
|
-
availabilityMessage,
|
|
22
|
-
noAvailabilityMessage
|
|
23
|
-
} = {},
|
|
24
|
-
occupation: propOccupation,
|
|
25
|
-
roomTypes,
|
|
26
|
-
showLocalTaxes: fees,
|
|
27
|
-
vatIncluded: taxes,
|
|
28
|
-
...response
|
|
29
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
30
|
-
let calendar;
|
|
31
|
-
let disabledDates;
|
|
32
|
-
let description;
|
|
33
|
-
let minStayDates;
|
|
34
|
-
let minStayType;
|
|
35
|
-
let occupation;
|
|
36
|
-
let hotels;
|
|
37
|
-
if (availability !== null) {
|
|
38
|
-
var _availability$hotelSu;
|
|
39
|
-
const {
|
|
40
|
-
calendar: {
|
|
41
|
-
minimumStayConfig: config = BY_CHECK_IN
|
|
42
|
-
} = {}
|
|
43
|
-
} = availability;
|
|
44
|
-
minStayType = config === BY_CHECK_IN ? _Core.MIN_STAY_TYPE.CHECK_IN : _Core.MIN_STAY_TYPE.STAY;
|
|
45
|
-
calendar = (0, _getCalendarSuggestions.getCalendarSuggestions)({
|
|
46
|
-
...availability,
|
|
47
|
-
...response,
|
|
48
|
-
minStayType
|
|
49
|
-
});
|
|
50
|
-
disabledDates = (0, _getDisabledDates.getDisabledDates)(availability);
|
|
51
|
-
minStayDates = (0, _getMinStayDates.getMinStayDates)(availability);
|
|
52
|
-
description = noAvailabilityMessage === null || noAvailabilityMessage === void 0 ? void 0 : noAvailabilityMessage.noDispoMessage;
|
|
53
|
-
hotels = availability === null || availability === void 0 ? void 0 : (_availability$hotelSu = availability.hotelSuggestions) === null || _availability$hotelSu === void 0 ? void 0 : _availability$hotelSu.map(_ref => {
|
|
54
|
-
let {
|
|
55
|
-
distanceMessage: distance,
|
|
56
|
-
idtokenprovider: id,
|
|
57
|
-
location,
|
|
58
|
-
name,
|
|
59
|
-
photo,
|
|
60
|
-
rates: [{
|
|
61
|
-
price = 0
|
|
62
|
-
} = {}] = [],
|
|
63
|
-
url
|
|
64
|
-
} = _ref;
|
|
65
|
-
const [, ...rest] = name.split(' ');
|
|
66
|
-
return {
|
|
67
|
-
features: {
|
|
68
|
-
distance,
|
|
69
|
-
location,
|
|
70
|
-
url
|
|
71
|
-
},
|
|
72
|
-
id,
|
|
73
|
-
images: [photo],
|
|
74
|
-
name: rest.join(' '),
|
|
75
|
-
price: price / 100
|
|
76
|
-
};
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
if (availabilityMessage !== null && availabilityMessage.notOccupationRequested != null) {
|
|
80
|
-
const infantAge = firstChildInterval === null || firstChildInterval === void 0 ? void 0 : firstChildInterval.lowerBound;
|
|
81
|
-
occupation = (0, _getOccupationSuggestions.getOccupationSuggestions)({
|
|
82
|
-
infantAge,
|
|
83
|
-
roomTypes,
|
|
84
|
-
occupation: propOccupation,
|
|
85
|
-
...response
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
const [{
|
|
89
|
-
hasFees,
|
|
90
|
-
hasTaxes
|
|
91
|
-
} = {}] = occupation || [];
|
|
92
|
-
return hotels || calendar || occupation ? {
|
|
93
|
-
calendar: {
|
|
94
|
-
disabledDates,
|
|
95
|
-
minStayDates,
|
|
96
|
-
minStayType
|
|
97
|
-
},
|
|
98
|
-
hotel: {
|
|
99
|
-
email,
|
|
100
|
-
phone
|
|
101
|
-
},
|
|
102
|
-
hotels,
|
|
103
|
-
suggestions: {
|
|
104
|
-
calendar,
|
|
105
|
-
description,
|
|
106
|
-
occupation
|
|
107
|
-
},
|
|
108
|
-
taxesType: (0, _getTaxesType.getTaxesType)({
|
|
109
|
-
fees,
|
|
110
|
-
hasFees,
|
|
111
|
-
hasTaxes,
|
|
112
|
-
taxes
|
|
113
|
-
})
|
|
114
|
-
} : undefined;
|
|
115
|
-
};
|
|
116
|
-
exports.parseUnavailability = parseUnavailability;
|
|
117
|
-
//# sourceMappingURL=parseUnavailability.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseUnavailability.js","names":["_getCalendarSuggestions","require","_getDisabledDates","_getMinStayDates","_getOccupationSuggestions","_getTaxesType","_Core","BY_CHECK_IN","parseUnavailability","availabilitySuggestions","availability","firstChildInterval","hotelEmail","email","hotelPhone","phone","messages","availabilityMessage","noAvailabilityMessage","occupation","propOccupation","roomTypes","showLocalTaxes","fees","vatIncluded","taxes","response","arguments","length","undefined","calendar","disabledDates","description","minStayDates","minStayType","hotels","_availability$hotelSu","minimumStayConfig","config","MIN_STAY_TYPE","CHECK_IN","STAY","getCalendarSuggestions","getDisabledDates","getMinStayDates","noDispoMessage","hotelSuggestions","map","_ref","distanceMessage","distance","idtokenprovider","id","location","name","photo","rates","price","url","rest","split","features","images","join","notOccupationRequested","infantAge","lowerBound","getOccupationSuggestions","hasFees","hasTaxes","hotel","suggestions","taxesType","getTaxesType","exports"],"sources":["../../../../src/services/Rates/helpers/parseUnavailability.js"],"sourcesContent":["import { getCalendarSuggestions } from './getCalendarSuggestions';\nimport { getDisabledDates } from './getDisabledDates';\nimport { getMinStayDates } from './getMinStayDates';\nimport { getOccupationSuggestions } from './getOccupationSuggestions';\nimport { getTaxesType } from './getTaxesType';\nimport { MIN_STAY_TYPE } from '../../../Core.constants';\n\nconst BY_CHECK_IN = 'BY_CHECKIN';\n\nexport const parseUnavailability = ({\n availabilitySuggestions: availability,\n firstChildInterval,\n hotelEmail: email,\n hotelPhone: phone,\n messages: { availabilityMessage, noAvailabilityMessage } = {},\n occupation: propOccupation,\n roomTypes,\n showLocalTaxes: fees,\n vatIncluded: taxes,\n ...response\n} = {}) => {\n let calendar;\n let disabledDates;\n let description;\n let minStayDates;\n let minStayType;\n let occupation;\n let hotels;\n\n if (availability !== null) {\n const { calendar: { minimumStayConfig: config = BY_CHECK_IN } = {} } = availability;\n\n minStayType = config === BY_CHECK_IN ? MIN_STAY_TYPE.CHECK_IN : MIN_STAY_TYPE.STAY;\n calendar = getCalendarSuggestions({ ...availability, ...response, minStayType });\n disabledDates = getDisabledDates(availability);\n minStayDates = getMinStayDates(availability);\n description = noAvailabilityMessage?.noDispoMessage;\n hotels = availability?.hotelSuggestions?.map(\n ({\n distanceMessage: distance,\n idtokenprovider: id,\n location,\n name,\n photo,\n rates: [{ price = 0 } = {}] = [],\n url,\n }) => {\n const [, ...rest] = name.split(' ');\n\n return { features: { distance, location, url }, id, images: [photo], name: rest.join(' '), price: price / 100 };\n },\n );\n }\n if (availabilityMessage !== null && availabilityMessage.notOccupationRequested != null) {\n const infantAge = firstChildInterval?.lowerBound;\n occupation = getOccupationSuggestions({ infantAge, roomTypes, occupation: propOccupation, ...response });\n }\n\n const [{ hasFees, hasTaxes } = {}] = occupation || [];\n\n return hotels || calendar || occupation\n ? {\n calendar: { disabledDates, minStayDates, minStayType },\n hotel: { email, phone },\n hotels,\n suggestions: { calendar, description, occupation },\n taxesType: getTaxesType({ fees, hasFees, hasTaxes, taxes }),\n }\n : undefined;\n};\n"],"mappings":"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"}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.hotels = void 0;
|
|
7
|
-
var _dataSources = require("@mirai/data-sources");
|
|
8
|
-
var _services = require("@mirai/services");
|
|
9
|
-
var _helpers = require("./helpers");
|
|
10
|
-
/* eslint-disable no-async-promise-executor */
|
|
11
|
-
|
|
12
|
-
const hotels = function () {
|
|
13
|
-
let {
|
|
14
|
-
session: {
|
|
15
|
-
authorization
|
|
16
|
-
} = {},
|
|
17
|
-
id,
|
|
18
|
-
locale,
|
|
19
|
-
userCurrency,
|
|
20
|
-
...others
|
|
21
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
22
|
-
return new Promise(async (resolve, reject) => {
|
|
23
|
-
var _response$hotelInfoBA;
|
|
24
|
-
const {
|
|
25
|
-
hotelIds,
|
|
26
|
-
idchain,
|
|
27
|
-
...rest
|
|
28
|
-
} = others || {};
|
|
29
|
-
const language = locale === null || locale === void 0 ? void 0 : locale.split('-')[0];
|
|
30
|
-
const params = Object.entries({
|
|
31
|
-
authorization,
|
|
32
|
-
currency: userCurrency,
|
|
33
|
-
hotel_ids: hotelIds,
|
|
34
|
-
id_chain: idchain || id,
|
|
35
|
-
...rest,
|
|
36
|
-
lang: (0, _helpers.getLanguage)(language)
|
|
37
|
-
}).filter(_ref => {
|
|
38
|
-
let [, value] = _ref;
|
|
39
|
-
return value !== undefined;
|
|
40
|
-
});
|
|
41
|
-
const response = await (0, _dataSources.request)({
|
|
42
|
-
hostname: process.env.SERVICE_CURRENCY,
|
|
43
|
-
endpoint: "/chain_result?".concat(new URLSearchParams(params)),
|
|
44
|
-
headers: {
|
|
45
|
-
'Accept-Language': language,
|
|
46
|
-
Authorization: "Basic ".concat(btoa('anonimous:anonimous')),
|
|
47
|
-
'X-Requested-With': undefined
|
|
48
|
-
}
|
|
49
|
-
}).catch(reject);
|
|
50
|
-
if (!response || ((_response$hotelInfoBA = response.hotelInfoBAR) === null || _response$hotelInfoBA === void 0 ? void 0 : _response$hotelInfoBA.length) < 1 || response.result === 'EXCEPTION') {
|
|
51
|
-
return reject({
|
|
52
|
-
calendar: true
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
const {
|
|
56
|
-
hotelInfoBAR: rawHotels = []
|
|
57
|
-
} = response;
|
|
58
|
-
const {
|
|
59
|
-
nights
|
|
60
|
-
} = rest || {};
|
|
61
|
-
resolve({
|
|
62
|
-
hotels: await Promise.all(rawHotels.map(async function () {
|
|
63
|
-
let {
|
|
64
|
-
bestAvailableRate: {
|
|
65
|
-
averagePrice: {
|
|
66
|
-
internalOriginal: basePrice,
|
|
67
|
-
internalWithTaxes: price
|
|
68
|
-
} = {},
|
|
69
|
-
discountPricesBefore: discounts = {}
|
|
70
|
-
} = {},
|
|
71
|
-
category: {
|
|
72
|
-
numStars: stars
|
|
73
|
-
} = {},
|
|
74
|
-
currency: {
|
|
75
|
-
currencyCode: hotelCurrency
|
|
76
|
-
} = {},
|
|
77
|
-
hotelName: name,
|
|
78
|
-
idTokenProvider: id,
|
|
79
|
-
locality = '',
|
|
80
|
-
photos: images,
|
|
81
|
-
province = '',
|
|
82
|
-
url
|
|
83
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
84
|
-
const currency = userCurrency || hotelCurrency;
|
|
85
|
-
await _services.ServiceCurrency.exchange(currency);
|
|
86
|
-
const taxes = basePrice === price;
|
|
87
|
-
const totalPrice = (taxes ? price : basePrice) * nights;
|
|
88
|
-
const parsedDiscounts = (0, _helpers.parseHotelDiscount)(discounts);
|
|
89
|
-
const {
|
|
90
|
-
clientCodeTotal: promoCode,
|
|
91
|
-
clubTotal: club,
|
|
92
|
-
offerTotal: deal
|
|
93
|
-
} = parsedDiscounts;
|
|
94
|
-
const originalPrice = (taxes ? Math.max((deal === null || deal === void 0 ? void 0 : deal.withTaxes) || 0, (club === null || club === void 0 ? void 0 : club.withTaxes) || 0, (promoCode === null || promoCode === void 0 ? void 0 : promoCode.withTaxes) || 0) : Math.max((deal === null || deal === void 0 ? void 0 : deal.original) || 0, (club === null || club === void 0 ? void 0 : club.original) || 0, (promoCode === null || promoCode === void 0 ? void 0 : promoCode.original) || 0)) || totalPrice;
|
|
95
|
-
const {
|
|
96
|
-
percentage: discountPercentage,
|
|
97
|
-
breakdown = []
|
|
98
|
-
} = (0, _helpers.parseDiscount)({
|
|
99
|
-
currency,
|
|
100
|
-
hotelCurrency,
|
|
101
|
-
...{
|
|
102
|
-
...discounts,
|
|
103
|
-
...parsedDiscounts
|
|
104
|
-
},
|
|
105
|
-
originalPrice,
|
|
106
|
-
taxes,
|
|
107
|
-
totalPrice
|
|
108
|
-
});
|
|
109
|
-
return {
|
|
110
|
-
discountPercentage,
|
|
111
|
-
features: {
|
|
112
|
-
location: "".concat(locality, ", ").concat(province),
|
|
113
|
-
url
|
|
114
|
-
},
|
|
115
|
-
hasDiscountClub: breakdown.some(function () {
|
|
116
|
-
let {
|
|
117
|
-
type
|
|
118
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
119
|
-
return type === 0;
|
|
120
|
-
}),
|
|
121
|
-
id,
|
|
122
|
-
images,
|
|
123
|
-
name,
|
|
124
|
-
price: (0, _helpers.getPrice)({
|
|
125
|
-
currency,
|
|
126
|
-
hotelCurrency,
|
|
127
|
-
price: totalPrice
|
|
128
|
-
}),
|
|
129
|
-
stars,
|
|
130
|
-
taxes
|
|
131
|
-
};
|
|
132
|
-
})),
|
|
133
|
-
tracking: (0, _helpers.parseTracking)(response, false)
|
|
134
|
-
});
|
|
135
|
-
});
|
|
136
|
-
};
|
|
137
|
-
exports.hotels = hotels;
|
|
138
|
-
//# sourceMappingURL=hotels.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hotels.js","names":["_dataSources","require","_services","_helpers","hotels","session","authorization","id","locale","userCurrency","others","arguments","length","undefined","Promise","resolve","reject","_response$hotelInfoBA","hotelIds","idchain","rest","language","split","params","Object","entries","currency","hotel_ids","id_chain","lang","getLanguage","filter","_ref","value","response","request","hostname","process","env","SERVICE_CURRENCY","endpoint","concat","URLSearchParams","headers","Authorization","btoa","catch","hotelInfoBAR","result","calendar","rawHotels","nights","all","map","bestAvailableRate","averagePrice","internalOriginal","basePrice","internalWithTaxes","price","discountPricesBefore","discounts","category","numStars","stars","currencyCode","hotelCurrency","hotelName","name","idTokenProvider","locality","photos","images","province","url","ServiceCurrency","exchange","taxes","totalPrice","parsedDiscounts","parseHotelDiscount","clientCodeTotal","promoCode","clubTotal","club","offerTotal","deal","originalPrice","Math","max","withTaxes","original","percentage","discountPercentage","breakdown","parseDiscount","features","location","hasDiscountClub","some","type","getPrice","tracking","parseTracking","exports"],"sources":["../../../src/services/Rates/hotels.js"],"sourcesContent":["/* eslint-disable no-async-promise-executor */\nimport { request } from '@mirai/data-sources';\nimport { ServiceCurrency } from '@mirai/services';\n\nimport { getLanguage, getPrice, parseDiscount, parseHotelDiscount, parseTracking } from './helpers';\n\nexport const hotels = ({ session: { authorization } = {}, id, locale, userCurrency, ...others } = {}) =>\n new Promise(async (resolve, reject) => {\n const { hotelIds, idchain, ...rest } = others || {};\n const language = locale?.split('-')[0];\n\n const params = Object.entries({\n authorization,\n currency: userCurrency,\n hotel_ids: hotelIds,\n id_chain: idchain || id,\n ...rest,\n lang: getLanguage(language),\n }).filter(([, value]) => value !== undefined);\n\n const response = await request({\n hostname: process.env.SERVICE_CURRENCY,\n endpoint: `/chain_result?${new URLSearchParams(params)}`,\n headers: {\n 'Accept-Language': language,\n Authorization: `Basic ${btoa('anonimous:anonimous')}`,\n 'X-Requested-With': undefined,\n },\n }).catch(reject);\n\n if (!response || response.hotelInfoBAR?.length < 1 || response.result === 'EXCEPTION') {\n return reject({ calendar: true });\n }\n\n const { hotelInfoBAR: rawHotels = [] } = response;\n const { nights } = rest || {};\n\n resolve({\n hotels: await Promise.all(\n rawHotels.map(\n async ({\n bestAvailableRate: {\n averagePrice: { internalOriginal: basePrice, internalWithTaxes: price } = {},\n discountPricesBefore: discounts = {},\n } = {},\n category: { numStars: stars } = {},\n currency: { currencyCode: hotelCurrency } = {},\n hotelName: name,\n idTokenProvider: id,\n locality = '',\n photos: images,\n province = '',\n url,\n } = {}) => {\n const currency = userCurrency || hotelCurrency;\n await ServiceCurrency.exchange(currency);\n\n const taxes = basePrice === price;\n const totalPrice = (taxes ? price : basePrice) * nights;\n const parsedDiscounts = parseHotelDiscount(discounts);\n const { clientCodeTotal: promoCode, clubTotal: club, offerTotal: deal } = parsedDiscounts;\n\n const originalPrice =\n (taxes\n ? Math.max(deal?.withTaxes || 0, club?.withTaxes || 0, promoCode?.withTaxes || 0)\n : Math.max(deal?.original || 0, club?.original || 0, promoCode?.original || 0)) || totalPrice;\n\n const { percentage: discountPercentage, breakdown = [] } = parseDiscount({\n currency,\n hotelCurrency,\n ...{ ...discounts, ...parsedDiscounts },\n originalPrice,\n taxes,\n totalPrice,\n });\n\n return {\n discountPercentage,\n features: { location: `${locality}, ${province}`, url },\n hasDiscountClub: breakdown.some(({ type } = {}) => type === 0),\n id,\n images,\n name,\n price: getPrice({ currency, hotelCurrency, price: totalPrice }),\n stars,\n taxes,\n };\n },\n ),\n ),\n tracking: parseTracking(response, false),\n });\n });\n"],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.ServiceRates = void 0;
|
|
7
|
-
var _extras = require("./extras");
|
|
8
|
-
var _get = require("./get");
|
|
9
|
-
const ServiceRates = exports.ServiceRates = {
|
|
10
|
-
extras: _extras.extras,
|
|
11
|
-
get: _get.get
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_extras","require","_get","ServiceRates","exports","extras","get"],"sources":["../../../src/services/Rates/index.js"],"sourcesContent":["import { extras } from './extras';\nimport { get } from './get';\n\nexport const ServiceRates = {\n extras,\n get,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AAEO,MAAME,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG;EAC1BE,MAAM,EAANA,cAAM;EACNC,GAAG,EAAHA;AACF,CAAC"}
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.rates = void 0;
|
|
7
|
-
var _dataSources = require("@mirai/data-sources");
|
|
8
|
-
var _services = require("@mirai/services");
|
|
9
|
-
var _jsSha = _interopRequireDefault(require("js-sha1"));
|
|
10
|
-
var _constants = require("./constants");
|
|
11
|
-
var _helpers = require("./helpers");
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
/* eslint-disable no-async-promise-executor */
|
|
14
|
-
|
|
15
|
-
const FEATURE = {
|
|
16
|
-
PESTANA: 'pestana'
|
|
17
|
-
};
|
|
18
|
-
const rates = function () {
|
|
19
|
-
let {
|
|
20
|
-
clubDiscount,
|
|
21
|
-
locale,
|
|
22
|
-
occupation,
|
|
23
|
-
session: {
|
|
24
|
-
authorization
|
|
25
|
-
} = {},
|
|
26
|
-
strictSearch = true,
|
|
27
|
-
userCurrency,
|
|
28
|
-
...others
|
|
29
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
30
|
-
return new Promise(async (resolve, reject) => {
|
|
31
|
-
var _club$clubLogin;
|
|
32
|
-
const {
|
|
33
|
-
checkin,
|
|
34
|
-
club: {
|
|
35
|
-
authentication: {
|
|
36
|
-
type
|
|
37
|
-
} = {}
|
|
38
|
-
} = {},
|
|
39
|
-
idoffers,
|
|
40
|
-
idtokenprovider: id,
|
|
41
|
-
nights,
|
|
42
|
-
roomTypeId,
|
|
43
|
-
...rest
|
|
44
|
-
} = others || {};
|
|
45
|
-
const language = locale === null || locale === void 0 ? void 0 : locale.split('-')[0];
|
|
46
|
-
const params = Object.entries({
|
|
47
|
-
applyClubDiscount: clubDiscount,
|
|
48
|
-
checkin,
|
|
49
|
-
clientCodeStrictSearch: strictSearch,
|
|
50
|
-
currency: userCurrency,
|
|
51
|
-
idtokenprovider: id,
|
|
52
|
-
idoffers: strictSearch ? idoffers : undefined,
|
|
53
|
-
roomTypeId: strictSearch ? roomTypeId : undefined,
|
|
54
|
-
nights,
|
|
55
|
-
...rest,
|
|
56
|
-
accessClubToken: authorization,
|
|
57
|
-
lang: (0, _helpers.getLanguage)(language),
|
|
58
|
-
...(0, _helpers.parseExternalToken)(rest),
|
|
59
|
-
cid: (0, _jsSha.default)("".concat(_constants.KEY_HASH, "-").concat(id, "-").concat(checkin, "-").concat(nights))
|
|
60
|
-
}).filter(_ref => {
|
|
61
|
-
let [, value] = _ref;
|
|
62
|
-
return value !== undefined;
|
|
63
|
-
});
|
|
64
|
-
const response = await (0, _dataSources.request)({
|
|
65
|
-
hostname: process.env.SERVICE_BOOKING,
|
|
66
|
-
endpoint: "/request_availability_v2.json?".concat(new URLSearchParams(params)),
|
|
67
|
-
headers: {
|
|
68
|
-
'Content-Type': undefined,
|
|
69
|
-
'X-Requested-With': undefined
|
|
70
|
-
}
|
|
71
|
-
}).catch(reject);
|
|
72
|
-
if (!response || response.result === 'EXCEPTION') return reject({
|
|
73
|
-
error: 'Upss, something bad happened!'
|
|
74
|
-
}); //TODO
|
|
75
|
-
|
|
76
|
-
const unavailability = (0, _helpers.parseUnavailability)({
|
|
77
|
-
...response,
|
|
78
|
-
checkIn: checkin,
|
|
79
|
-
nights,
|
|
80
|
-
occupation,
|
|
81
|
-
...others
|
|
82
|
-
});
|
|
83
|
-
if (unavailability) return reject({
|
|
84
|
-
...unavailability,
|
|
85
|
-
tracking: (0, _helpers.parseTracking)({
|
|
86
|
-
...response,
|
|
87
|
-
userCurrency
|
|
88
|
-
})
|
|
89
|
-
});
|
|
90
|
-
const {
|
|
91
|
-
club,
|
|
92
|
-
currencyCode: hotelCurrency,
|
|
93
|
-
firstChildInterval = {},
|
|
94
|
-
hotelverse,
|
|
95
|
-
messages: {
|
|
96
|
-
availabilityMessage: {
|
|
97
|
-
increments
|
|
98
|
-
} = {}
|
|
99
|
-
} = {},
|
|
100
|
-
showLocalTaxes: fees,
|
|
101
|
-
userCountry: country,
|
|
102
|
-
vatIncluded: taxes
|
|
103
|
-
} = response;
|
|
104
|
-
const currency = userCurrency || hotelCurrency;
|
|
105
|
-
await _services.ServiceCurrency.exchange(currency);
|
|
106
|
-
const infantAge = firstChildInterval === null || firstChildInterval === void 0 ? void 0 : firstChildInterval.lowerBound;
|
|
107
|
-
const items = (0, _helpers.getItems)({
|
|
108
|
-
...response,
|
|
109
|
-
currency,
|
|
110
|
-
...others
|
|
111
|
-
});
|
|
112
|
-
const [{
|
|
113
|
-
boards: [{
|
|
114
|
-
fees: hasFees,
|
|
115
|
-
taxes: hasTaxes
|
|
116
|
-
} = {}] = []
|
|
117
|
-
} = {}] = items || [];
|
|
118
|
-
resolve({
|
|
119
|
-
clubConditions: _services.ServiceFeatures.get(FEATURE.PESTANA, id) ? _constants.EXTERNAL.URL[language] || _constants.EXTERNAL.URL[_constants.DEFAULT_LANGUAGE] : undefined,
|
|
120
|
-
country,
|
|
121
|
-
currency: hotelCurrency,
|
|
122
|
-
externalSignout: authorization && type === _constants.EXTERNAL.TYPE && (club === null || club === void 0 ? void 0 : (_club$clubLogin = club.clubLogin) === null || _club$clubLogin === void 0 ? void 0 : _club$clubLogin.status) !== _constants.VALID,
|
|
123
|
-
hotelverse,
|
|
124
|
-
increments: increments || undefined,
|
|
125
|
-
infantAge: infantAge !== null ? infantAge : undefined,
|
|
126
|
-
items,
|
|
127
|
-
taxesType: (0, _helpers.getTaxesType)({
|
|
128
|
-
fees,
|
|
129
|
-
hasFees,
|
|
130
|
-
hasTaxes,
|
|
131
|
-
taxes
|
|
132
|
-
}),
|
|
133
|
-
tracking: (0, _helpers.parseTracking)({
|
|
134
|
-
...response,
|
|
135
|
-
userCurrency
|
|
136
|
-
})
|
|
137
|
-
});
|
|
138
|
-
});
|
|
139
|
-
};
|
|
140
|
-
exports.rates = rates;
|
|
141
|
-
//# sourceMappingURL=rates.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rates.js","names":["_dataSources","require","_services","_jsSha","_interopRequireDefault","_constants","_helpers","obj","__esModule","default","FEATURE","PESTANA","rates","clubDiscount","locale","occupation","session","authorization","strictSearch","userCurrency","others","arguments","length","undefined","Promise","resolve","reject","_club$clubLogin","checkin","club","authentication","type","idoffers","idtokenprovider","id","nights","roomTypeId","rest","language","split","params","Object","entries","applyClubDiscount","clientCodeStrictSearch","currency","accessClubToken","lang","getLanguage","parseExternalToken","cid","sha1","concat","KEY_HASH","filter","_ref","value","response","request","hostname","process","env","SERVICE_BOOKING","endpoint","URLSearchParams","headers","catch","result","error","unavailability","parseUnavailability","checkIn","tracking","parseTracking","currencyCode","hotelCurrency","firstChildInterval","hotelverse","messages","availabilityMessage","increments","showLocalTaxes","fees","userCountry","country","vatIncluded","taxes","ServiceCurrency","exchange","infantAge","lowerBound","items","getItems","boards","hasFees","hasTaxes","clubConditions","ServiceFeatures","get","EXTERNAL","URL","DEFAULT_LANGUAGE","externalSignout","TYPE","clubLogin","status","VALID","taxesType","getTaxesType","exports"],"sources":["../../../src/services/Rates/rates.js"],"sourcesContent":["/* eslint-disable no-async-promise-executor */\nimport { request } from '@mirai/data-sources';\nimport { ServiceCurrency, ServiceFeatures } from '@mirai/services';\nimport sha1 from 'js-sha1';\n\nimport { DEFAULT_LANGUAGE, EXTERNAL, KEY_HASH, VALID } from './constants';\nimport { getItems, getLanguage, getTaxesType, parseExternalToken, parseTracking, parseUnavailability } from './helpers';\n\nconst FEATURE = { PESTANA: 'pestana' };\n\nexport const rates = ({\n clubDiscount,\n locale,\n occupation,\n session: { authorization } = {},\n strictSearch = true,\n userCurrency,\n ...others\n} = {}) =>\n new Promise(async (resolve, reject) => {\n const {\n checkin,\n club: { authentication: { type } = {} } = {},\n idoffers,\n idtokenprovider: id,\n nights,\n roomTypeId,\n ...rest\n } = others || {};\n\n const language = locale?.split('-')[0];\n\n const params = Object.entries({\n applyClubDiscount: clubDiscount,\n checkin,\n clientCodeStrictSearch: strictSearch,\n currency: userCurrency,\n idtokenprovider: id,\n idoffers: strictSearch ? idoffers : undefined,\n roomTypeId: strictSearch ? roomTypeId : undefined,\n nights,\n ...rest,\n accessClubToken: authorization,\n lang: getLanguage(language),\n ...parseExternalToken(rest),\n cid: sha1(`${KEY_HASH}-${id}-${checkin}-${nights}`),\n }).filter(([, value]) => value !== undefined);\n\n const response = await request({\n hostname: process.env.SERVICE_BOOKING,\n endpoint: `/request_availability_v2.json?${new URLSearchParams(params)}`,\n headers: { 'Content-Type': undefined, 'X-Requested-With': undefined },\n }).catch(reject);\n\n if (!response || response.result === 'EXCEPTION') return reject({ error: 'Upss, something bad happened!' }); //TODO\n\n const unavailability = parseUnavailability({ ...response, checkIn: checkin, nights, occupation, ...others });\n if (unavailability) return reject({ ...unavailability, tracking: parseTracking({ ...response, userCurrency }) });\n\n const {\n club,\n currencyCode: hotelCurrency,\n firstChildInterval = {},\n hotelverse,\n messages: { availabilityMessage: { increments } = {} } = {},\n showLocalTaxes: fees,\n userCountry: country,\n vatIncluded: taxes,\n } = response;\n\n const currency = userCurrency || hotelCurrency;\n await ServiceCurrency.exchange(currency);\n\n const infantAge = firstChildInterval?.lowerBound;\n const items = getItems({ ...response, currency, ...others });\n\n const [{ boards: [{ fees: hasFees, taxes: hasTaxes } = {}] = [] } = {}] = items || [];\n\n resolve({\n clubConditions: ServiceFeatures.get(FEATURE.PESTANA, id)\n ? EXTERNAL.URL[language] || EXTERNAL.URL[DEFAULT_LANGUAGE]\n : undefined,\n country,\n currency: hotelCurrency,\n externalSignout: authorization && type === EXTERNAL.TYPE && club?.clubLogin?.status !== VALID,\n hotelverse,\n increments: increments || undefined,\n infantAge: infantAge !== null ? infantAge : undefined,\n items,\n taxesType: getTaxesType({ fees, hasFees, hasTaxes, taxes }),\n tracking: parseTracking({ ...response, userCurrency }),\n });\n });\n"],"mappings":"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"}
|