mts-booking-library 1.3.6 → 1.3.8
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/lib/booking/booking.d.ts +10 -10
- package/lib/booking/booking.js +30 -16
- package/lib/booking/journeyBooking.d.ts +25 -24
- package/lib/booking/journeyBooking.js +67 -45
- package/lib/booking/serviceBooking.d.ts +33 -32
- package/lib/booking/serviceBooking.js +58 -44
- package/lib/booking/subscriptionBooking.d.ts +37 -36
- package/lib/booking/subscriptionBooking.js +76 -56
- package/lib/booking/tplBooking.d.ts +12 -11
- package/lib/booking/tplBooking.js +41 -24
- package/lib/mtsStorage.js +2 -2
- package/lib/types/ErrorResponse.d.ts +1 -1
- package/lib/types/ErrorResponse.js +1 -1
- package/lib/types/common/Payment.d.ts +4 -2
- package/lib/types/common/Person.d.ts +1 -1
- package/lib/types/common/Person.js +4 -4
- package/lib/types/journeys/JourneyCart.js +1 -1
- package/lib/types/journeys/JourneySearch.js +1 -1
- package/lib/utils/apiCall.js +9 -8
- package/package.json +5 -2
package/lib/booking/booking.d.ts
CHANGED
@@ -22,16 +22,16 @@ export declare abstract class Booking {
|
|
22
22
|
cartId: number | undefined;
|
23
23
|
bookingDueDate: Date | undefined;
|
24
24
|
/**
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
25
|
+
* This is the constructor of the Booking class.
|
26
|
+
* @param {string} env The environment in which the app is running. Can be "DEV", "STAGING" or "PROD"
|
27
|
+
* @param {string} sub_key The subscription key for using the APIs
|
28
|
+
* @param {Booking.BookingTypes} bookingType The type of booking. Can be "MLP", "SERVICE" or "MLP_SUBSCRIPTION"
|
29
|
+
* @param {boolean} [debug=false] If true, the app will run in debug mode (meaning that will print requests and responses in the console)
|
30
|
+
* @param {string} [language=Booking.Languages.EN] The language in which the app is running. Can be "it", "en", "fr", "de" or "es"
|
31
|
+
* @param {string} [access_token=undefined] The access token for calling MTS APIs
|
32
|
+
* @param {number} [sellerId=undefined] The id of the seller. If not set, it will return the results for all sellers
|
33
|
+
* @param {number} [resellerId=undefined] The id of the reseller.
|
34
|
+
*/
|
35
35
|
constructor(env: MTSEnvs, sub_key: string, bookingType: Booking.BookingTypes, debug?: boolean, language?: string, access_token?: string, sellerId?: number, resellerId?: number);
|
36
36
|
/**
|
37
37
|
* This method allows to update the sellerId. It is mostly important for Linkavel, as we start with sellerId = 0
|
package/lib/booking/booking.js
CHANGED
@@ -55,16 +55,16 @@ var apiCall_1 = require("../utils/apiCall");
|
|
55
55
|
var processBookingSteps_1 = require("../utils/processBookingSteps");
|
56
56
|
var Booking = /** @class */ (function () {
|
57
57
|
/**
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
58
|
+
* This is the constructor of the Booking class.
|
59
|
+
* @param {string} env The environment in which the app is running. Can be "DEV", "STAGING" or "PROD"
|
60
|
+
* @param {string} sub_key The subscription key for using the APIs
|
61
|
+
* @param {Booking.BookingTypes} bookingType The type of booking. Can be "MLP", "SERVICE" or "MLP_SUBSCRIPTION"
|
62
|
+
* @param {boolean} [debug=false] If true, the app will run in debug mode (meaning that will print requests and responses in the console)
|
63
|
+
* @param {string} [language=Booking.Languages.EN] The language in which the app is running. Can be "it", "en", "fr", "de" or "es"
|
64
|
+
* @param {string} [access_token=undefined] The access token for calling MTS APIs
|
65
|
+
* @param {number} [sellerId=undefined] The id of the seller. If not set, it will return the results for all sellers
|
66
|
+
* @param {number} [resellerId=undefined] The id of the reseller.
|
67
|
+
*/
|
68
68
|
function Booking(env, sub_key, bookingType, debug, language, access_token, sellerId, resellerId) {
|
69
69
|
if (debug === void 0) { debug = false; }
|
70
70
|
if (language === void 0) { language = Booking.Languages.EN; }
|
@@ -207,7 +207,11 @@ var Booking = /** @class */ (function () {
|
|
207
207
|
if (!issueStep)
|
208
208
|
throw Error("Booking step: ".concat(Booking.BookingSteps.ISSUE, " not found!"));
|
209
209
|
if (!!issueStep[0]) return [3 /*break*/, 5];
|
210
|
-
_i = 0, _a = [
|
210
|
+
_i = 0, _a = [
|
211
|
+
Booking.BookingSteps.SEATS_SELECTION,
|
212
|
+
Booking.BookingSteps.EXTRAS,
|
213
|
+
Booking.BookingSteps.DISCOUNTS
|
214
|
+
];
|
211
215
|
_c.label = 1;
|
212
216
|
case 1:
|
213
217
|
if (!(_i < _a.length)) return [3 /*break*/, 4];
|
@@ -231,7 +235,9 @@ var Booking = /** @class */ (function () {
|
|
231
235
|
url = "".concat(this.config.API_ENDPOINT, "/v3_resources/sellers/").concat(this.sellerId, "/gateways?");
|
232
236
|
// We use directly makeGet because we don't want to add sellerId to the query string (it is already present in the url)
|
233
237
|
return [2 /*return*/, (0, apiCall_1.makeGet)(url).then(function (response) {
|
234
|
-
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
238
|
+
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
239
|
+
? response
|
240
|
+
: response;
|
235
241
|
})];
|
236
242
|
}
|
237
243
|
});
|
@@ -259,7 +265,9 @@ var Booking = /** @class */ (function () {
|
|
259
265
|
searchParams = new URLSearchParams(__assign({ gatewayId: gatewayId.toString() }, (returnUrl && { returnUrl: returnUrl })));
|
260
266
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cartId, "/payment?").concat(searchParams);
|
261
267
|
return [2 /*return*/, this.callGetApi(url).then(function (response) {
|
262
|
-
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
268
|
+
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
269
|
+
? response
|
270
|
+
: response;
|
263
271
|
})];
|
264
272
|
});
|
265
273
|
});
|
@@ -301,7 +309,11 @@ var Booking = /** @class */ (function () {
|
|
301
309
|
if (!issueStep)
|
302
310
|
throw Error("Booking step not found!");
|
303
311
|
if (!!issueStep[0]) return [3 /*break*/, 7];
|
304
|
-
_i = 0, _a = [
|
312
|
+
_i = 0, _a = [
|
313
|
+
Booking.BookingSteps.SEATS_SELECTION,
|
314
|
+
Booking.BookingSteps.EXTRAS,
|
315
|
+
Booking.BookingSteps.DISCOUNTS
|
316
|
+
];
|
305
317
|
_c.label = 3;
|
306
318
|
case 3:
|
307
319
|
if (!(_i < _a.length)) return [3 /*break*/, 6];
|
@@ -325,10 +337,12 @@ var Booking = /** @class */ (function () {
|
|
325
337
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cartId, "/issue");
|
326
338
|
body = {
|
327
339
|
cartId: this.cartId,
|
328
|
-
paymentMethod: paymentMethodToSet === Payment_1.PaymentMethods.PAY_LATER ? null : paymentMethodToSet
|
340
|
+
paymentMethod: paymentMethodToSet === Payment_1.PaymentMethods.PAY_LATER ? null : paymentMethodToSet
|
329
341
|
};
|
330
342
|
return [2 /*return*/, this.callPostApi(url, body).then(function (response) {
|
331
|
-
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
343
|
+
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
344
|
+
? response
|
345
|
+
: response;
|
332
346
|
})];
|
333
347
|
}
|
334
348
|
});
|
@@ -10,16 +10,17 @@ import { Booking } from "./booking";
|
|
10
10
|
export declare class JourneyBooking extends Booking {
|
11
11
|
private cart?;
|
12
12
|
/**
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
13
|
+
* This is the constructor of the ServiceBooking class.
|
14
|
+
* @param {MTSEnvs} env The environment in which the app is running. Can be "DEV", "STAGING" or "PROD"
|
15
|
+
* @param {string} sub_key The subscription key for using the APIs
|
16
|
+
* @param {boolean} [debug=false] If true, the app will run in debug mode (meaning that will print requests and responses in the console)
|
17
|
+
* @param {string} [language=Booking.Languages.EN] The language in which the app is running. Can be "it", "en", "fr", "de" or "es"
|
18
|
+
* @param {boolean} [restoreState=true] If true, the app will try to restore the state of the booking, reading the cartId from the mts-storage
|
19
|
+
* @param {string} [access_token=undefined] The access token for calling MTS APIs
|
20
|
+
* @param {number} [sellerId=undefined] The id of the seller. If not set, it will return the results for all sellers
|
21
|
+
* @param {number} [resellerId=undefined] The id of the reseller.
|
22
|
+
*/
|
23
|
+
constructor(env: MTSEnvs, sub_key: string, debug?: boolean, language?: string, restoreState?: boolean, access_token?: string, sellerId?: number, resellerId?: number);
|
23
24
|
getCart(): JourneyCart | undefined;
|
24
25
|
getStorage(): import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<{
|
25
26
|
cartId: number | undefined;
|
@@ -77,23 +78,23 @@ export declare class JourneyBooking extends Booking {
|
|
77
78
|
*/
|
78
79
|
deleteCart(): Promise<ErrorResponse | any>;
|
79
80
|
/**
|
80
|
-
|
81
|
-
|
82
|
-
|
81
|
+
* This method returns the possible departures for all journeys (MLP) sold by this seller.
|
82
|
+
* @returns {string[]} The list of possible departures
|
83
|
+
*/
|
83
84
|
getJourneysDepartures(): Promise<ErrorResponse | string[]>;
|
84
85
|
/**
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
86
|
+
* This method returns the possible destination for the journeys sold by this seller that start at the selected departure.
|
87
|
+
* @param {string} departureStopName The departure stop name (as returned by {@link getJourneysDepartures})
|
88
|
+
* @returns {string[]} The list of possible destinations
|
89
|
+
*/
|
89
90
|
getJourneysDestinations(departureStopName: string): Promise<ErrorResponse | string[]>;
|
90
91
|
/**
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
92
|
+
* This method returns the journeys that match the given parameters.
|
93
|
+
* Note that it will always return the journeys for the one-way trip.
|
94
|
+
* If you want to get the journeys for the round trip, you have to call this method twice (make sure to swap departureStopName and destinationStopName)
|
95
|
+
* @param {JourneySearch} request an object of type {@link JourneySearch} containing the parameters of the search
|
96
|
+
* @returns {JourneySearchResult[]} The returned journeys that match the given parameters
|
97
|
+
*/
|
97
98
|
getJourneys(request: JourneySearchRequest): Promise<ErrorResponse | JourneySearchResult[]>;
|
98
99
|
createJourneyCart(journeyCart: CreateJourneyCartRequest): Promise<ErrorResponse | JourneyCart>;
|
99
100
|
/**
|
@@ -182,5 +183,5 @@ export declare class JourneyBooking extends Booking {
|
|
182
183
|
useVoucher(voucherCode: string): Promise<ErrorResponse | boolean>;
|
183
184
|
}
|
184
185
|
export declare namespace JourneyBooking {
|
185
|
-
const createBooking: (env: MTSEnvs, sub_key: string, debug: boolean, language: string, access_token?: string, sellerId?: number, resellerId?: number) => Promise<JourneyBooking>;
|
186
|
+
const createBooking: (env: MTSEnvs, sub_key: string, debug: boolean, language: string, restoreState: boolean, access_token?: string, sellerId?: number, resellerId?: number) => Promise<JourneyBooking>;
|
186
187
|
}
|
@@ -81,23 +81,25 @@ var booking_1 = require("./booking");
|
|
81
81
|
var JourneyBooking = /** @class */ (function (_super) {
|
82
82
|
__extends(JourneyBooking, _super);
|
83
83
|
/**
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
84
|
+
* This is the constructor of the ServiceBooking class.
|
85
|
+
* @param {MTSEnvs} env The environment in which the app is running. Can be "DEV", "STAGING" or "PROD"
|
86
|
+
* @param {string} sub_key The subscription key for using the APIs
|
87
|
+
* @param {boolean} [debug=false] If true, the app will run in debug mode (meaning that will print requests and responses in the console)
|
88
|
+
* @param {string} [language=Booking.Languages.EN] The language in which the app is running. Can be "it", "en", "fr", "de" or "es"
|
89
|
+
* @param {boolean} [restoreState=true] If true, the app will try to restore the state of the booking, reading the cartId from the mts-storage
|
90
|
+
* @param {string} [access_token=undefined] The access token for calling MTS APIs
|
91
|
+
* @param {number} [sellerId=undefined] The id of the seller. If not set, it will return the results for all sellers
|
92
|
+
* @param {number} [resellerId=undefined] The id of the reseller.
|
93
|
+
*/
|
94
|
+
function JourneyBooking(env, sub_key, debug, language, restoreState, access_token, sellerId, resellerId) {
|
94
95
|
if (debug === void 0) { debug = false; }
|
95
96
|
if (language === void 0) { language = booking_1.Booking.Languages.EN; }
|
97
|
+
if (restoreState === void 0) { restoreState = true; }
|
96
98
|
// Call Booking constructor
|
97
99
|
var _this = _super.call(this, env, sub_key, booking_1.Booking.BookingTypes.MLP, debug, language, access_token, sellerId, resellerId) || this;
|
98
100
|
// Set cartId
|
99
101
|
var cartId = _this.getStorage().getState().cartId;
|
100
|
-
if (cartId) {
|
102
|
+
if (cartId && restoreState) {
|
101
103
|
_this.cartId = cartId;
|
102
104
|
}
|
103
105
|
return _this;
|
@@ -166,7 +168,7 @@ var JourneyBooking = /** @class */ (function (_super) {
|
|
166
168
|
return [2 /*return*/, this.callGetApi(url).then(function (response) {
|
167
169
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
168
170
|
_this.resetBooking();
|
169
|
-
throw new Error(response);
|
171
|
+
throw new Error(JSON.stringify(response, null, 2));
|
170
172
|
}
|
171
173
|
// Check that the cart does not have issued tickets
|
172
174
|
if (response.cart.hasIssuedTickets) {
|
@@ -201,25 +203,27 @@ var JourneyBooking = /** @class */ (function (_super) {
|
|
201
203
|
});
|
202
204
|
};
|
203
205
|
/**
|
204
|
-
|
205
|
-
|
206
|
-
|
206
|
+
* This method returns the possible departures for all journeys (MLP) sold by this seller.
|
207
|
+
* @returns {string[]} The list of possible departures
|
208
|
+
*/
|
207
209
|
JourneyBooking.prototype.getJourneysDepartures = function () {
|
208
210
|
return __awaiter(this, void 0, void 0, function () {
|
209
211
|
var url;
|
210
212
|
return __generator(this, function (_a) {
|
211
213
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/journeys/departures?");
|
212
214
|
return [2 /*return*/, this.callGetApi(url).then(function (response) {
|
213
|
-
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
215
|
+
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
216
|
+
? response
|
217
|
+
: response.stops;
|
214
218
|
})];
|
215
219
|
});
|
216
220
|
});
|
217
221
|
};
|
218
222
|
/**
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
+
* This method returns the possible destination for the journeys sold by this seller that start at the selected departure.
|
224
|
+
* @param {string} departureStopName The departure stop name (as returned by {@link getJourneysDepartures})
|
225
|
+
* @returns {string[]} The list of possible destinations
|
226
|
+
*/
|
223
227
|
JourneyBooking.prototype.getJourneysDestinations = function (departureStopName) {
|
224
228
|
return __awaiter(this, void 0, void 0, function () {
|
225
229
|
var searchParams, url;
|
@@ -227,18 +231,20 @@ var JourneyBooking = /** @class */ (function (_super) {
|
|
227
231
|
searchParams = new URLSearchParams({ departureStopName: departureStopName });
|
228
232
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/journeys/destinations?").concat(searchParams);
|
229
233
|
return [2 /*return*/, this.callGetApi(url).then(function (response) {
|
230
|
-
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
234
|
+
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
235
|
+
? response
|
236
|
+
: response.stops;
|
231
237
|
})];
|
232
238
|
});
|
233
239
|
});
|
234
240
|
};
|
235
241
|
/**
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
+
* This method returns the journeys that match the given parameters.
|
243
|
+
* Note that it will always return the journeys for the one-way trip.
|
244
|
+
* If you want to get the journeys for the round trip, you have to call this method twice (make sure to swap departureStopName and destinationStopName)
|
245
|
+
* @param {JourneySearch} request an object of type {@link JourneySearch} containing the parameters of the search
|
246
|
+
* @returns {JourneySearchResult[]} The returned journeys that match the given parameters
|
247
|
+
*/
|
242
248
|
JourneyBooking.prototype.getJourneys = function (request) {
|
243
249
|
return __awaiter(this, void 0, void 0, function () {
|
244
250
|
var searchParams, url;
|
@@ -249,7 +255,9 @@ var JourneyBooking = /** @class */ (function (_super) {
|
|
249
255
|
searchParams = new URLSearchParams(__assign({ departureStopName: request.departureStopName, destinationStopName: request.destinationStopName, passengersNumber: request.passengersNumber.toString(), date: request.date, roundTripDate: request.roundTripDate ? request.roundTripDate : "null", currency: request.currency }, (this.cartId && { cartId: this.cartId.toString() })));
|
250
256
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/journeys?").concat(searchParams);
|
251
257
|
return [2 /*return*/, this.callGetApi(url).then(function (response) {
|
252
|
-
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
258
|
+
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
259
|
+
? response
|
260
|
+
: response.journeys;
|
253
261
|
})];
|
254
262
|
});
|
255
263
|
});
|
@@ -319,18 +327,20 @@ var JourneyBooking = /** @class */ (function (_super) {
|
|
319
327
|
];
|
320
328
|
}));
|
321
329
|
// Parse the return tariffs
|
322
|
-
passenger.returnTariffs = passenger.returnTariffs
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
330
|
+
passenger.returnTariffs = passenger.returnTariffs
|
331
|
+
? new Map(Object.entries(passenger.returnTariffs).map(function (_a) {
|
332
|
+
var tripId = _a[0], tariffs = _a[1];
|
333
|
+
return [
|
334
|
+
+tripId,
|
335
|
+
tariffs
|
336
|
+
];
|
337
|
+
}))
|
338
|
+
: null;
|
329
339
|
});
|
330
340
|
return {
|
331
341
|
buyerDataStatus: response.buyerDataStatus,
|
332
342
|
buyer: response.buyer,
|
333
|
-
passengers: passengers
|
343
|
+
passengers: passengers
|
334
344
|
};
|
335
345
|
})];
|
336
346
|
});
|
@@ -435,7 +445,9 @@ var JourneyBooking = /** @class */ (function (_super) {
|
|
435
445
|
});
|
436
446
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/journeys/trips/").concat(tripId, "/seats?").concat(searchParams);
|
437
447
|
return [2 /*return*/, this.callGetApi(url).then(function (response) {
|
438
|
-
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
448
|
+
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
449
|
+
? response
|
450
|
+
: response.busMatrix;
|
439
451
|
})];
|
440
452
|
});
|
441
453
|
});
|
@@ -460,7 +472,9 @@ var JourneyBooking = /** @class */ (function (_super) {
|
|
460
472
|
searchParams = new URLSearchParams({ tripId: tripId.toString() });
|
461
473
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cart.id, "/seats?").concat(searchParams);
|
462
474
|
return [2 /*return*/, this.callGetApi(url).then(function (response) {
|
463
|
-
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
475
|
+
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
476
|
+
? response
|
477
|
+
: response.assignedSeats;
|
464
478
|
})];
|
465
479
|
});
|
466
480
|
});
|
@@ -513,7 +527,9 @@ var JourneyBooking = /** @class */ (function (_super) {
|
|
513
527
|
}
|
514
528
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cart.id, "/payment/reduction/trips?");
|
515
529
|
return [2 /*return*/, this.callGetApi(url).then(function (response) {
|
516
|
-
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
530
|
+
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
531
|
+
? response
|
532
|
+
: response.trips;
|
517
533
|
})];
|
518
534
|
});
|
519
535
|
});
|
@@ -607,9 +623,11 @@ var JourneyBooking = /** @class */ (function (_super) {
|
|
607
623
|
// Update the booking process status
|
608
624
|
_this.bookingStepsToStatus = (0, processBookingSteps_1.processBookingSteps)(reductionResponse.stepsToStatus);
|
609
625
|
// Update the cart
|
610
|
-
_this.cart = __assign(__assign({}, _this.cart), { totalAmountToPay: reductionResponse.totalAmountToPay, reductions: (_c = (_b = (_a = _this.cart) === null || _a === void 0 ? void 0 : _a.reductions) === null || _b === void 0 ? void 0 : _b.filter(function (reduction) {
|
611
|
-
reduction.type === Reduction_1.ReductionType.
|
612
|
-
|
626
|
+
_this.cart = __assign(__assign({}, _this.cart), { totalAmountToPay: reductionResponse.totalAmountToPay, reductions: (_c = (_b = (_a = _this.cart) === null || _a === void 0 ? void 0 : _a.reductions) === null || _b === void 0 ? void 0 : _b.filter(function (reduction) {
|
627
|
+
return reduction.type === Reduction_1.ReductionType.WALLET ||
|
628
|
+
reduction.type === Reduction_1.ReductionType.VOUCHER ||
|
629
|
+
(reduction.type === Reduction_1.ReductionType.CASH && reduction.tripId !== tripId);
|
630
|
+
})) !== null && _c !== void 0 ? _c : [] });
|
613
631
|
return true;
|
614
632
|
})];
|
615
633
|
});
|
@@ -637,7 +655,11 @@ var JourneyBooking = /** @class */ (function (_super) {
|
|
637
655
|
if (!issueStep)
|
638
656
|
throw Error("Booking step: ".concat(booking_1.Booking.BookingSteps.ISSUE, " not found!"));
|
639
657
|
if (!!issueStep[0]) return [3 /*break*/, 5];
|
640
|
-
_i = 0, _a = [
|
658
|
+
_i = 0, _a = [
|
659
|
+
booking_1.Booking.BookingSteps.SEATS_SELECTION,
|
660
|
+
booking_1.Booking.BookingSteps.EXTRAS,
|
661
|
+
booking_1.Booking.BookingSteps.DISCOUNTS
|
662
|
+
];
|
641
663
|
_c.label = 1;
|
642
664
|
case 1:
|
643
665
|
if (!(_i < _a.length)) return [3 /*break*/, 4];
|
@@ -771,12 +793,12 @@ var JourneyBooking = /** @class */ (function (_super) {
|
|
771
793
|
exports.JourneyBooking = JourneyBooking;
|
772
794
|
(function (JourneyBooking) {
|
773
795
|
var _this = this;
|
774
|
-
JourneyBooking.createBooking = function (env, sub_key, debug, language, access_token, sellerId, resellerId) { return __awaiter(_this, void 0, void 0, function () {
|
796
|
+
JourneyBooking.createBooking = function (env, sub_key, debug, language, restoreState, access_token, sellerId, resellerId) { return __awaiter(_this, void 0, void 0, function () {
|
775
797
|
var booking, error_1;
|
776
798
|
return __generator(this, function (_a) {
|
777
799
|
switch (_a.label) {
|
778
800
|
case 0:
|
779
|
-
booking = new JourneyBooking(env, sub_key, debug, language, access_token, sellerId, resellerId);
|
801
|
+
booking = new JourneyBooking(env, sub_key, debug, language, restoreState, access_token, sellerId, resellerId);
|
780
802
|
_a.label = 1;
|
781
803
|
case 1:
|
782
804
|
_a.trys.push([1, 4, , 5]);
|
@@ -8,16 +8,17 @@ import { Booking } from "./booking";
|
|
8
8
|
export declare class ServiceBooking extends Booking {
|
9
9
|
private cart?;
|
10
10
|
/**
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
11
|
+
* This is the constructor of the ServiceBooking class.
|
12
|
+
* @param {MTSEnvs} env The environment in which the app is running. Can be "DEV", "STAGING" or "PROD"
|
13
|
+
* @param {string} sub_key The subscription key for using the APIs
|
14
|
+
* @param {boolean} [debug=false] If true, the app will run in debug mode (meaning that will print requests and responses in the console)
|
15
|
+
* @param {string} [language=Booking.Languages.EN] The language in which the app is running. Can be "it", "en", "fr", "de" or "es"
|
16
|
+
* @param {boolean} [restoreState=true] If true, the app will try to restore the state of the booking, reading the cartId from the mts-storage
|
17
|
+
* @param {string} [access_token=undefined] The access token for calling MTS APIs
|
18
|
+
* @param {number} [sellerId=undefined] The id of the seller. If not set, it will return the results for all sellers
|
19
|
+
* @param {number} [resellerId=undefined] The id of the reseller.
|
20
|
+
*/
|
21
|
+
constructor(env: MTSEnvs, sub_key: string, debug?: boolean, language?: string, restoreState?: boolean, access_token?: string, sellerId?: number, resellerId?: number);
|
21
22
|
getStorage(): import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<{
|
22
23
|
cartId: number | undefined;
|
23
24
|
} & {
|
@@ -69,33 +70,33 @@ export declare class ServiceBooking extends Booking {
|
|
69
70
|
fetchAndSetCart(cartId: number): Promise<void>;
|
70
71
|
fetchCart(cartId: number): Promise<ServiceCart>;
|
71
72
|
/**
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
73
|
+
* This method allows to delete a cart, thus allowing the user to exit from the booking process.
|
74
|
+
* @returns An {@link ErrorResponse} object in case of error, nothing otherwise. Note that also in case of error, all
|
75
|
+
* data will be deleted.
|
76
|
+
*/
|
76
77
|
deleteCart(): Promise<ErrorResponse | any>;
|
77
78
|
/**
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
79
|
+
* This method returns the list of cities in which the seller offers tours.
|
80
|
+
* If the sellerId is not set or it is 0, it will return the list of cities for all sellers.
|
81
|
+
* @returns {string[]} The list of possible cities
|
82
|
+
*/
|
82
83
|
getServiceCities(): Promise<ErrorResponse | string[]>;
|
83
84
|
/**
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
85
|
+
* This method returns the tours sold by this seller in the given city.
|
86
|
+
* If the sellerId is not set or it is 0, it will return the tours in the given city for all sellers.
|
87
|
+
* @param {string} [cityName=undefined] The name of the selected city (as returned by {@link getTourCities})
|
88
|
+
* @param {Booking.Currencies} currency The currency in which the prices should be returned
|
89
|
+
* @returns {Tour[]} The returned tours
|
90
|
+
*/
|
90
91
|
getServices(currency: Booking.Currencies, cityName?: string): Promise<ErrorResponse | Service[]>;
|
91
92
|
/**
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
93
|
+
* This method returns the tours available for the given date. This method can be used if the seller wants the user to book a specific date
|
94
|
+
* and/or a specific hour for the tour.
|
95
|
+
* You should call this method only if {@link Service.isDateOptional} or {@link Service.isDateRequired} is true for the selected tour.
|
96
|
+
* @param {number} serviceId The id of the selected tour (can be retrieved in the object {@link Service} returned by {@link getTours})
|
97
|
+
* @param {string} date The date on which to get the tours, in ISO string format
|
98
|
+
* @returns {ServiceTripsResponse} The returned information about the tour (tripId and hour)
|
99
|
+
*/
|
99
100
|
getServiceTrips(serviceId: number, date: string): Promise<ErrorResponse | ServiceTripsResponse>;
|
100
101
|
createServiceCart(serviceCart: CreateServiceCartRequest): Promise<ErrorResponse | ServiceCart>;
|
101
102
|
/**
|
@@ -156,5 +157,5 @@ export declare class ServiceBooking extends Booking {
|
|
156
157
|
useVoucher(voucherCode: string): Promise<ErrorResponse | boolean>;
|
157
158
|
}
|
158
159
|
export declare namespace ServiceBooking {
|
159
|
-
const createBooking: (env: MTSEnvs, sub_key: string, debug: boolean, language: string, access_token?: string, sellerId?: number, resellerId?: number) => Promise<ServiceBooking>;
|
160
|
+
const createBooking: (env: MTSEnvs, sub_key: string, debug: boolean, language: string, restoreState: boolean, access_token?: string, sellerId?: number, resellerId?: number) => Promise<ServiceBooking>;
|
160
161
|
}
|