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.
@@ -81,23 +81,25 @@ var booking_1 = require("./booking");
81
81
  var ServiceBooking = /** @class */ (function (_super) {
82
82
  __extends(ServiceBooking, _super);
83
83
  /**
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 {string} [access_token=undefined] The access token for calling MTS APIs
90
- * @param {number} [sellerId=undefined] The id of the seller. If not set, it will return the results for all sellers
91
- * @param {number} [resellerId=undefined] The id of the reseller.
92
- */
93
- function ServiceBooking(env, sub_key, debug, language, access_token, sellerId, resellerId) {
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 ServiceBooking(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.SERVICE, 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 ServiceBooking = /** @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 doe not have issued tickets
172
174
  if (response.cart.hasIssuedTickets) {
@@ -178,10 +180,10 @@ var ServiceBooking = /** @class */ (function (_super) {
178
180
  });
179
181
  };
180
182
  /**
181
- * This method allows to delete a cart, thus allowing the user to exit from the booking process.
182
- * @returns An {@link ErrorResponse} object in case of error, nothing otherwise. Note that also in case of error, all
183
- * data will be deleted.
184
- */
183
+ * This method allows to delete a cart, thus allowing the user to exit from the booking process.
184
+ * @returns An {@link ErrorResponse} object in case of error, nothing otherwise. Note that also in case of error, all
185
+ * data will be deleted.
186
+ */
185
187
  ServiceBooking.prototype.deleteCart = function () {
186
188
  return __awaiter(this, void 0, void 0, function () {
187
189
  var url;
@@ -201,28 +203,30 @@ var ServiceBooking = /** @class */ (function (_super) {
201
203
  });
202
204
  };
203
205
  /**
204
- * This method returns the list of cities in which the seller offers tours.
205
- * If the sellerId is not set or it is 0, it will return the list of cities for all sellers.
206
- * @returns {string[]} The list of possible cities
207
- */
206
+ * This method returns the list of cities in which the seller offers tours.
207
+ * If the sellerId is not set or it is 0, it will return the list of cities for all sellers.
208
+ * @returns {string[]} The list of possible cities
209
+ */
208
210
  ServiceBooking.prototype.getServiceCities = function () {
209
211
  return __awaiter(this, void 0, void 0, function () {
210
212
  var url;
211
213
  return __generator(this, function (_a) {
212
214
  url = "".concat(this.config.API_ENDPOINT, "/v3_booking/services/cities?");
213
215
  return [2 /*return*/, this.callGetApi(url).then(function (response) {
214
- return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response.cities;
216
+ return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
217
+ ? response
218
+ : response.cities;
215
219
  })];
216
220
  });
217
221
  });
218
222
  };
219
223
  /**
220
- * This method returns the tours sold by this seller in the given city.
221
- * If the sellerId is not set or it is 0, it will return the tours in the given city for all sellers.
222
- * @param {string} [cityName=undefined] The name of the selected city (as returned by {@link getTourCities})
223
- * @param {Booking.Currencies} currency The currency in which the prices should be returned
224
- * @returns {Tour[]} The returned tours
225
- */
224
+ * This method returns the tours sold by this seller in the given city.
225
+ * If the sellerId is not set or it is 0, it will return the tours in the given city for all sellers.
226
+ * @param {string} [cityName=undefined] The name of the selected city (as returned by {@link getTourCities})
227
+ * @param {Booking.Currencies} currency The currency in which the prices should be returned
228
+ * @returns {Tour[]} The returned tours
229
+ */
226
230
  ServiceBooking.prototype.getServices = function (currency, cityName) {
227
231
  return __awaiter(this, void 0, void 0, function () {
228
232
  var searchParams, url;
@@ -230,19 +234,21 @@ var ServiceBooking = /** @class */ (function (_super) {
230
234
  searchParams = new URLSearchParams(__assign(__assign({}, (cityName && { cityName: cityName })), { currency: currency }));
231
235
  url = "".concat(this.config.API_ENDPOINT, "/v3_booking/services?").concat(searchParams);
232
236
  return [2 /*return*/, this.callGetApi(url).then(function (response) {
233
- return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response.services;
237
+ return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
238
+ ? response
239
+ : response.services;
234
240
  })];
235
241
  });
236
242
  });
237
243
  };
238
244
  /**
239
- * 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
240
- * and/or a specific hour for the tour.
241
- * You should call this method only if {@link Service.isDateOptional} or {@link Service.isDateRequired} is true for the selected tour.
242
- * @param {number} serviceId The id of the selected tour (can be retrieved in the object {@link Service} returned by {@link getTours})
243
- * @param {string} date The date on which to get the tours, in ISO string format
244
- * @returns {ServiceTripsResponse} The returned information about the tour (tripId and hour)
245
- */
245
+ * 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
246
+ * and/or a specific hour for the tour.
247
+ * You should call this method only if {@link Service.isDateOptional} or {@link Service.isDateRequired} is true for the selected tour.
248
+ * @param {number} serviceId The id of the selected tour (can be retrieved in the object {@link Service} returned by {@link getTours})
249
+ * @param {string} date The date on which to get the tours, in ISO string format
250
+ * @returns {ServiceTripsResponse} The returned information about the tour (tripId and hour)
251
+ */
246
252
  ServiceBooking.prototype.getServiceTrips = function (serviceId, date) {
247
253
  return __awaiter(this, void 0, void 0, function () {
248
254
  var searchParams, url;
@@ -250,7 +256,9 @@ var ServiceBooking = /** @class */ (function (_super) {
250
256
  searchParams = new URLSearchParams({ date: date });
251
257
  url = "".concat(this.config.API_ENDPOINT, "/v3_booking/services/").concat(serviceId, "/trips?").concat(searchParams);
252
258
  return [2 /*return*/, this.callGetApi(url).then(function (response) {
253
- return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response;
259
+ return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
260
+ ? response
261
+ : response;
254
262
  })];
255
263
  });
256
264
  });
@@ -312,7 +320,7 @@ var ServiceBooking = /** @class */ (function (_super) {
312
320
  return {
313
321
  buyerDataStatus: response.buyerDataStatus,
314
322
  buyer: response.buyer,
315
- passengers: [],
323
+ passengers: []
316
324
  };
317
325
  })];
318
326
  });
@@ -374,7 +382,7 @@ var ServiceBooking = /** @class */ (function (_super) {
374
382
  }
375
383
  request = {
376
384
  buyer: buyerDetails,
377
- passengers: [],
385
+ passengers: []
378
386
  };
379
387
  url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cart.id, "/details");
380
388
  return [2 /*return*/, this.callPostApi(url, request).then(function (response) {
@@ -479,9 +487,11 @@ var ServiceBooking = /** @class */ (function (_super) {
479
487
  // Update the booking process status
480
488
  _this.bookingStepsToStatus = (0, processBookingSteps_1.processBookingSteps)(reductionResponse.stepsToStatus);
481
489
  // Update the cart
482
- _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) { return reduction.type === Reduction_1.ReductionType.WALLET ||
483
- reduction.type === Reduction_1.ReductionType.VOUCHER ||
484
- (reduction.type === Reduction_1.ReductionType.CASH && reduction.tripId !== tripId); })) !== null && _c !== void 0 ? _c : [] });
490
+ _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) {
491
+ return reduction.type === Reduction_1.ReductionType.WALLET ||
492
+ reduction.type === Reduction_1.ReductionType.VOUCHER ||
493
+ (reduction.type === Reduction_1.ReductionType.CASH && reduction.tripId !== tripId);
494
+ })) !== null && _c !== void 0 ? _c : [] });
485
495
  return true;
486
496
  })];
487
497
  });
@@ -509,7 +519,11 @@ var ServiceBooking = /** @class */ (function (_super) {
509
519
  if (!issueStep)
510
520
  throw Error("Booking step: ".concat(booking_1.Booking.BookingSteps.ISSUE, " not found!"));
511
521
  if (!!issueStep[0]) return [3 /*break*/, 5];
512
- _i = 0, _a = [booking_1.Booking.BookingSteps.SEATS_SELECTION, booking_1.Booking.BookingSteps.EXTRAS, booking_1.Booking.BookingSteps.DISCOUNTS];
522
+ _i = 0, _a = [
523
+ booking_1.Booking.BookingSteps.SEATS_SELECTION,
524
+ booking_1.Booking.BookingSteps.EXTRAS,
525
+ booking_1.Booking.BookingSteps.DISCOUNTS
526
+ ];
513
527
  _c.label = 1;
514
528
  case 1:
515
529
  if (!(_i < _a.length)) return [3 /*break*/, 4];
@@ -643,12 +657,12 @@ var ServiceBooking = /** @class */ (function (_super) {
643
657
  exports.ServiceBooking = ServiceBooking;
644
658
  (function (ServiceBooking) {
645
659
  var _this = this;
646
- ServiceBooking.createBooking = function (env, sub_key, debug, language, access_token, sellerId, resellerId) { return __awaiter(_this, void 0, void 0, function () {
660
+ ServiceBooking.createBooking = function (env, sub_key, debug, language, restoreState, access_token, sellerId, resellerId) { return __awaiter(_this, void 0, void 0, function () {
647
661
  var booking, error_1;
648
662
  return __generator(this, function (_a) {
649
663
  switch (_a.label) {
650
664
  case 0:
651
- booking = new ServiceBooking(env, sub_key, debug, language, access_token, sellerId, resellerId);
665
+ booking = new ServiceBooking(env, sub_key, debug, language, restoreState, access_token, sellerId, resellerId);
652
666
  _a.label = 1;
653
667
  case 1:
654
668
  _a.trys.push([1, 4, , 5]);
@@ -9,16 +9,17 @@ import { Booking } from "./booking";
9
9
  export declare class SubscriptionBooking extends Booking {
10
10
  private cart?;
11
11
  /**
12
- * This is the constructor of the ServiceBooking class.
13
- * @param {MTSEnvs} env The environment in which the app is running. Can be "DEV", "STAGING" or "PROD"
14
- * @param {string} sub_key The subscription key for using the APIs
15
- * @param {boolean} [debug=false] If true, the app will run in debug mode (meaning that will print requests and responses in the console)
16
- * @param {string} [language=Booking.Languages.EN] The language in which the app is running. Can be "it", "en", "fr", "de" or "es"
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, access_token?: string, sellerId?: number, resellerId?: number);
12
+ * This is the constructor of the ServiceBooking class.
13
+ * @param {MTSEnvs} env The environment in which the app is running. Can be "DEV", "STAGING" or "PROD"
14
+ * @param {string} sub_key The subscription key for using the APIs
15
+ * @param {boolean} [debug=false] If true, the app will run in debug mode (meaning that will print requests and responses in the console)
16
+ * @param {string} [language=Booking.Languages.EN] The language in which the app is running. Can be "it", "en", "fr", "de" or "es"
17
+ * @param {boolean} [restoreState=true] If true, the app will try to restore the state of the booking, reading the cartId from the mts-storage
18
+ * @param {string} [access_token=undefined] The access token for calling MTS APIs
19
+ * @param {number} [sellerId=undefined] The id of the seller. If not set, it will return the results for all sellers
20
+ * @param {number} [resellerId=undefined] The id of the reseller.
21
+ */
22
+ constructor(env: MTSEnvs, sub_key: string, debug?: boolean, language?: string, restoreState?: boolean, access_token?: string, sellerId?: number, resellerId?: number);
22
23
  getStorage(): import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<{
23
24
  cartId: number | undefined;
24
25
  } & {
@@ -70,39 +71,39 @@ export declare class SubscriptionBooking extends Booking {
70
71
  fetchAndSetCart(cartId: number): Promise<void>;
71
72
  fetchCart(cartId: number): Promise<SubscriptionCart>;
72
73
  /**
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
- */
74
+ * This method allows to delete a cart, thus allowing the user to exit from the booking process.
75
+ * @returns An {@link ErrorResponse} object in case of error, nothing otherwise. Note that also in case of error, all
76
+ * data will be deleted.
77
+ */
77
78
  deleteCart(): Promise<ErrorResponse | any>;
78
79
  /**
79
- * This method returns the possible departures for all subscriptions sold by this seller.
80
- * @returns {string[]} The list of possible departures
81
- */
80
+ * This method returns the possible departures for all subscriptions sold by this seller.
81
+ * @returns {string[]} The list of possible departures
82
+ */
82
83
  getSubscriptionsDepartures(): Promise<ErrorResponse | string[]>;
83
84
  /**
84
- * This method returns the possible destination for the subscriptions sold by this seller that start at the selected departure.
85
- * @param {string} departureStopName The departure stop name (as returned by {@link getSubscriptionsDepartures})
86
- * @returns {string[]} The list of possible destinations
87
- */
85
+ * This method returns the possible destination for the subscriptions sold by this seller that start at the selected departure.
86
+ * @param {string} departureStopName The departure stop name (as returned by {@link getSubscriptionsDepartures})
87
+ * @returns {string[]} The list of possible destinations
88
+ */
88
89
  getSubscriptionsDestinations(departureStopName: string): Promise<ErrorResponse | string[]>;
89
90
  /**
90
- * This method returns the possible validity types for the subscriptions sold by this seller between the selected departure and destination.
91
- * The validity type is the duration of the subscription (1 week, 1 month, etc.). See {@link ValidityTypes} for more details.
92
- * @param {string} departureStopName The departure stop name (as returned by {@link getSubscriptionsDepartures})
93
- * @param {string} destinationStopName The destination stop name (as returned by {@link getSubscriptionsDstinations})
94
- * @returns {ValidityTypes[]} The list of possible validity types
95
- */
91
+ * This method returns the possible validity types for the subscriptions sold by this seller between the selected departure and destination.
92
+ * The validity type is the duration of the subscription (1 week, 1 month, etc.). See {@link ValidityTypes} for more details.
93
+ * @param {string} departureStopName The departure stop name (as returned by {@link getSubscriptionsDepartures})
94
+ * @param {string} destinationStopName The destination stop name (as returned by {@link getSubscriptionsDstinations})
95
+ * @returns {ValidityTypes[]} The list of possible validity types
96
+ */
96
97
  getSubscriptionsValidityTypes(departureStopName: string, destinationStopName: string): Promise<ErrorResponse | SubscriptionBooking.ValidityTypes[]>;
97
98
  /**
98
- * This method returns the subscriptions that match the given parameters.
99
- * Note that it will always return the subscription for the one-way trip.
100
- * If you want to get the subscription for the round trip, you have to call this method twice (make sure to swap departureStopName and destinationStopName)
101
- * @param {string} departureStopName The departure stop name (as returned by {@link getSubscriptionsDepartures})
102
- * @param {string} destinationStopName The destination stop name (as returned by {@link getSubscriptionsDstinations})
103
- * @param {string} validityType The validity type (as returned by {@link getSubscriptionsValidityTypes})
104
- * @returns {Array<Subscription>} The subscriptions that match the given parameters
105
- */
99
+ * This method returns the subscriptions that match the given parameters.
100
+ * Note that it will always return the subscription for the one-way trip.
101
+ * If you want to get the subscription for the round trip, you have to call this method twice (make sure to swap departureStopName and destinationStopName)
102
+ * @param {string} departureStopName The departure stop name (as returned by {@link getSubscriptionsDepartures})
103
+ * @param {string} destinationStopName The destination stop name (as returned by {@link getSubscriptionsDstinations})
104
+ * @param {string} validityType The validity type (as returned by {@link getSubscriptionsValidityTypes})
105
+ * @returns {Array<Subscription>} The subscriptions that match the given parameters
106
+ */
106
107
  getSubscriptions(departureStopName: string, destinationStopName: string, validityType: string): Promise<ErrorResponse | Subscription[]>;
107
108
  /**
108
109
  * This method returns the availability of the subscription for the given parameters.
@@ -174,7 +175,7 @@ export declare class SubscriptionBooking extends Booking {
174
175
  useVoucher(voucherCode: string): Promise<ErrorResponse | boolean>;
175
176
  }
176
177
  export declare namespace SubscriptionBooking {
177
- const createBooking: (env: MTSEnvs, sub_key: string, debug: boolean, language: string, access_token?: string, sellerId?: number, resellerId?: number) => Promise<SubscriptionBooking>;
178
+ const createBooking: (env: MTSEnvs, sub_key: string, debug: boolean, language: string, restoreState: boolean, access_token?: string, sellerId?: number, resellerId?: number) => Promise<SubscriptionBooking>;
178
179
  enum ValidityTypes {
179
180
  WORKING_WEEK = "WORKING_WEEK",
180
181
  ONE_WEEK = "ONE_WEEK",
@@ -81,23 +81,25 @@ var booking_1 = require("./booking");
81
81
  var SubscriptionBooking = /** @class */ (function (_super) {
82
82
  __extends(SubscriptionBooking, _super);
83
83
  /**
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 {string} [access_token=undefined] The access token for calling MTS APIs
90
- * @param {number} [sellerId=undefined] The id of the seller. If not set, it will return the results for all sellers
91
- * @param {number} [resellerId=undefined] The id of the reseller.
92
- */
93
- function SubscriptionBooking(env, sub_key, debug, language, access_token, sellerId, resellerId) {
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 SubscriptionBooking(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_SUBSCRIPTION, 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 SubscriptionBooking = /** @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 doe not have issued tickets
172
174
  if (response.cart.hasIssuedTickets) {
@@ -178,10 +180,10 @@ var SubscriptionBooking = /** @class */ (function (_super) {
178
180
  });
179
181
  };
180
182
  /**
181
- * This method allows to delete a cart, thus allowing the user to exit from the booking process.
182
- * @returns An {@link ErrorResponse} object in case of error, nothing otherwise. Note that also in case of error, all
183
- * data will be deleted.
184
- */
183
+ * This method allows to delete a cart, thus allowing the user to exit from the booking process.
184
+ * @returns An {@link ErrorResponse} object in case of error, nothing otherwise. Note that also in case of error, all
185
+ * data will be deleted.
186
+ */
185
187
  SubscriptionBooking.prototype.deleteCart = function () {
186
188
  return __awaiter(this, void 0, void 0, function () {
187
189
  var url;
@@ -200,25 +202,27 @@ var SubscriptionBooking = /** @class */ (function (_super) {
200
202
  });
201
203
  };
202
204
  /**
203
- * This method returns the possible departures for all subscriptions sold by this seller.
204
- * @returns {string[]} The list of possible departures
205
- */
205
+ * This method returns the possible departures for all subscriptions sold by this seller.
206
+ * @returns {string[]} The list of possible departures
207
+ */
206
208
  SubscriptionBooking.prototype.getSubscriptionsDepartures = function () {
207
209
  return __awaiter(this, void 0, void 0, function () {
208
210
  var url;
209
211
  return __generator(this, function (_a) {
210
212
  url = "".concat(this.config.API_ENDPOINT, "/v3_booking/subscriptions/departures?");
211
213
  return [2 /*return*/, this.callGetApi(url).then(function (response) {
212
- return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response.departures;
214
+ return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
215
+ ? response
216
+ : response.departures;
213
217
  })];
214
218
  });
215
219
  });
216
220
  };
217
221
  /**
218
- * This method returns the possible destination for the subscriptions sold by this seller that start at the selected departure.
219
- * @param {string} departureStopName The departure stop name (as returned by {@link getSubscriptionsDepartures})
220
- * @returns {string[]} The list of possible destinations
221
- */
222
+ * This method returns the possible destination for the subscriptions sold by this seller that start at the selected departure.
223
+ * @param {string} departureStopName The departure stop name (as returned by {@link getSubscriptionsDepartures})
224
+ * @returns {string[]} The list of possible destinations
225
+ */
222
226
  SubscriptionBooking.prototype.getSubscriptionsDestinations = function (departureStopName) {
223
227
  return __awaiter(this, void 0, void 0, function () {
224
228
  var searchParams, url;
@@ -226,18 +230,20 @@ var SubscriptionBooking = /** @class */ (function (_super) {
226
230
  searchParams = new URLSearchParams({ departureStopName: departureStopName });
227
231
  url = "".concat(this.config.API_ENDPOINT, "/v3_booking/subscriptions/destinations?").concat(searchParams);
228
232
  return [2 /*return*/, this.callGetApi(url).then(function (response) {
229
- return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response.destinations;
233
+ return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
234
+ ? response
235
+ : response.destinations;
230
236
  })];
231
237
  });
232
238
  });
233
239
  };
234
240
  /**
235
- * This method returns the possible validity types for the subscriptions sold by this seller between the selected departure and destination.
236
- * The validity type is the duration of the subscription (1 week, 1 month, etc.). See {@link ValidityTypes} for more details.
237
- * @param {string} departureStopName The departure stop name (as returned by {@link getSubscriptionsDepartures})
238
- * @param {string} destinationStopName The destination stop name (as returned by {@link getSubscriptionsDstinations})
239
- * @returns {ValidityTypes[]} The list of possible validity types
240
- */
241
+ * This method returns the possible validity types for the subscriptions sold by this seller between the selected departure and destination.
242
+ * The validity type is the duration of the subscription (1 week, 1 month, etc.). See {@link ValidityTypes} for more details.
243
+ * @param {string} departureStopName The departure stop name (as returned by {@link getSubscriptionsDepartures})
244
+ * @param {string} destinationStopName The destination stop name (as returned by {@link getSubscriptionsDstinations})
245
+ * @returns {ValidityTypes[]} The list of possible validity types
246
+ */
241
247
  SubscriptionBooking.prototype.getSubscriptionsValidityTypes = function (departureStopName, destinationStopName) {
242
248
  return __awaiter(this, void 0, void 0, function () {
243
249
  var searchParams, url;
@@ -248,20 +254,22 @@ var SubscriptionBooking = /** @class */ (function (_super) {
248
254
  });
249
255
  url = "".concat(this.config.API_ENDPOINT, "/v3_booking/subscriptions/validityTypes?").concat(searchParams);
250
256
  return [2 /*return*/, this.callGetApi(url).then(function (response) {
251
- return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response.validityTypes;
257
+ return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
258
+ ? response
259
+ : response.validityTypes;
252
260
  })];
253
261
  });
254
262
  });
255
263
  };
256
264
  /**
257
- * This method returns the subscriptions that match the given parameters.
258
- * Note that it will always return the subscription for the one-way trip.
259
- * If you want to get the subscription for the round trip, you have to call this method twice (make sure to swap departureStopName and destinationStopName)
260
- * @param {string} departureStopName The departure stop name (as returned by {@link getSubscriptionsDepartures})
261
- * @param {string} destinationStopName The destination stop name (as returned by {@link getSubscriptionsDstinations})
262
- * @param {string} validityType The validity type (as returned by {@link getSubscriptionsValidityTypes})
263
- * @returns {Array<Subscription>} The subscriptions that match the given parameters
264
- */
265
+ * This method returns the subscriptions that match the given parameters.
266
+ * Note that it will always return the subscription for the one-way trip.
267
+ * If you want to get the subscription for the round trip, you have to call this method twice (make sure to swap departureStopName and destinationStopName)
268
+ * @param {string} departureStopName The departure stop name (as returned by {@link getSubscriptionsDepartures})
269
+ * @param {string} destinationStopName The destination stop name (as returned by {@link getSubscriptionsDstinations})
270
+ * @param {string} validityType The validity type (as returned by {@link getSubscriptionsValidityTypes})
271
+ * @returns {Array<Subscription>} The subscriptions that match the given parameters
272
+ */
265
273
  SubscriptionBooking.prototype.getSubscriptions = function (departureStopName, destinationStopName, validityType) {
266
274
  return __awaiter(this, void 0, void 0, function () {
267
275
  var searchParams, url;
@@ -273,7 +281,9 @@ var SubscriptionBooking = /** @class */ (function (_super) {
273
281
  });
274
282
  url = "".concat(this.config.API_ENDPOINT, "/v3_booking/subscriptions/search?").concat(searchParams);
275
283
  return [2 /*return*/, this.callGetApi(url).then(function (response) {
276
- return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response.subscriptions;
284
+ return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
285
+ ? response
286
+ : response.subscriptions;
277
287
  })];
278
288
  });
279
289
  });
@@ -300,7 +310,9 @@ var SubscriptionBooking = /** @class */ (function (_super) {
300
310
  });
301
311
  url = "".concat(this.config.API_ENDPOINT, "/v3_booking/subscriptions/availabilities?").concat(searchParams);
302
312
  return [2 /*return*/, this.callGetApi(url).then(function (response) {
303
- return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response;
313
+ return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
314
+ ? response
315
+ : response;
304
316
  })];
305
317
  });
306
318
  });
@@ -374,18 +386,20 @@ var SubscriptionBooking = /** @class */ (function (_super) {
374
386
  ];
375
387
  }));
376
388
  // Parse the return tariffs
377
- passenger.returnTariffs = passenger.returnTariffs ? new Map(Object.entries(passenger.returnTariffs).map(function (_a) {
378
- var tripId = _a[0], tariffs = _a[1];
379
- return [
380
- +tripId,
381
- tariffs
382
- ];
383
- })) : null;
389
+ passenger.returnTariffs = passenger.returnTariffs
390
+ ? new Map(Object.entries(passenger.returnTariffs).map(function (_a) {
391
+ var tripId = _a[0], tariffs = _a[1];
392
+ return [
393
+ +tripId,
394
+ tariffs
395
+ ];
396
+ }))
397
+ : null;
384
398
  });
385
399
  return {
386
400
  buyerDataStatus: response.buyerDataStatus,
387
401
  buyer: response.buyer,
388
- passengers: passengers,
402
+ passengers: passengers
389
403
  };
390
404
  })];
391
405
  });
@@ -554,9 +568,11 @@ var SubscriptionBooking = /** @class */ (function (_super) {
554
568
  // Update the booking process status
555
569
  _this.bookingStepsToStatus = (0, processBookingSteps_1.processBookingSteps)(reductionResponse.stepsToStatus);
556
570
  // Update the cart
557
- _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) { return reduction.type === Reduction_1.ReductionType.WALLET ||
558
- reduction.type === Reduction_1.ReductionType.VOUCHER ||
559
- (reduction.type === Reduction_1.ReductionType.CASH && reduction.tripId !== tripId); })) !== null && _c !== void 0 ? _c : [] });
571
+ _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) {
572
+ return reduction.type === Reduction_1.ReductionType.WALLET ||
573
+ reduction.type === Reduction_1.ReductionType.VOUCHER ||
574
+ (reduction.type === Reduction_1.ReductionType.CASH && reduction.tripId !== tripId);
575
+ })) !== null && _c !== void 0 ? _c : [] });
560
576
  return true;
561
577
  })];
562
578
  });
@@ -584,7 +600,11 @@ var SubscriptionBooking = /** @class */ (function (_super) {
584
600
  if (!issueStep)
585
601
  throw Error("Booking step: ".concat(booking_1.Booking.BookingSteps.ISSUE, " not found!"));
586
602
  if (!!issueStep[0]) return [3 /*break*/, 5];
587
- _i = 0, _a = [booking_1.Booking.BookingSteps.SEATS_SELECTION, booking_1.Booking.BookingSteps.EXTRAS, booking_1.Booking.BookingSteps.DISCOUNTS];
603
+ _i = 0, _a = [
604
+ booking_1.Booking.BookingSteps.SEATS_SELECTION,
605
+ booking_1.Booking.BookingSteps.EXTRAS,
606
+ booking_1.Booking.BookingSteps.DISCOUNTS
607
+ ];
588
608
  _c.label = 1;
589
609
  case 1:
590
610
  if (!(_i < _a.length)) return [3 /*break*/, 4];
@@ -718,12 +738,12 @@ var SubscriptionBooking = /** @class */ (function (_super) {
718
738
  exports.SubscriptionBooking = SubscriptionBooking;
719
739
  (function (SubscriptionBooking) {
720
740
  var _this = this;
721
- SubscriptionBooking.createBooking = function (env, sub_key, debug, language, access_token, sellerId, resellerId) { return __awaiter(_this, void 0, void 0, function () {
741
+ SubscriptionBooking.createBooking = function (env, sub_key, debug, language, restoreState, access_token, sellerId, resellerId) { return __awaiter(_this, void 0, void 0, function () {
722
742
  var booking, error_1;
723
743
  return __generator(this, function (_a) {
724
744
  switch (_a.label) {
725
745
  case 0:
726
- booking = new SubscriptionBooking(env, sub_key, debug, language, access_token, sellerId, resellerId);
746
+ booking = new SubscriptionBooking(env, sub_key, debug, language, restoreState, access_token, sellerId, resellerId);
727
747
  _a.label = 1;
728
748
  case 1:
729
749
  _a.trys.push([1, 4, , 5]);
@@ -11,16 +11,17 @@ import { Booking } from "./booking";
11
11
  export declare class TplBooking extends Booking {
12
12
  private cart?;
13
13
  /**
14
- * This is the constructor of the TplBooking class.
15
- * @param {MTSEnvs} env The environment in which the app is running. Can be "DEV", "STAGING" or "PROD"
16
- * @param {string} sub_key The subscription key for using the APIs
17
- * @param {boolean} [debug=false] If true, the app will run in debug mode (meaning that will print requests and responses in the console)
18
- * @param {string} [language=Booking.Languages.EN] The language in which the app is running. Can be "it", "en", "fr", "de" or "es"
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, access_token?: string, sellerId?: number, resellerId?: number);
14
+ * This is the constructor of the TplBooking class.
15
+ * @param {MTSEnvs} env The environment in which the app is running. Can be "DEV", "STAGING" or "PROD"
16
+ * @param {string} sub_key The subscription key for using the APIs
17
+ * @param {boolean} [debug=false] If true, the app will run in debug mode (meaning that will print requests and responses in the console)
18
+ * @param {string} [language=Booking.Languages.EN] The language in which the app is running. Can be "it", "en", "fr", "de" or "es"
19
+ * @param {boolean} [restoreState=true] If true, the app will try to restore the state of the booking, reading the cartId from the mts-storage
20
+ * @param {string} [access_token=undefined] The access token for calling MTS APIs
21
+ * @param {number} [sellerId=undefined] The id of the seller. If not set, it will return the results for all sellers
22
+ * @param {number} [resellerId=undefined] The id of the reseller.
23
+ */
24
+ constructor(env: MTSEnvs, sub_key: string, debug?: boolean, language?: string, restoreState?: boolean, access_token?: string, sellerId?: number, resellerId?: number);
24
25
  getStorage(): import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<{
25
26
  cartId: number | undefined;
26
27
  } & {
@@ -169,5 +170,5 @@ export declare class TplBooking extends Booking {
169
170
  useVoucher(voucherCode: string): Promise<ErrorResponse | boolean>;
170
171
  }
171
172
  export declare namespace TplBooking {
172
- const createBooking: (env: MTSEnvs, sub_key: string, debug: boolean, language: string, access_token?: string, sellerId?: number, resellerId?: number) => Promise<TplBooking>;
173
+ const createBooking: (env: MTSEnvs, sub_key: string, debug: boolean, language: string, restoreState: boolean, access_token?: string, sellerId?: number, resellerId?: number) => Promise<TplBooking>;
173
174
  }