mts-booking-library 1.2.32 → 1.3.0

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.
@@ -113,6 +113,7 @@ export declare namespace Booking {
113
113
  enum BookingTypes {
114
114
  MLP = "MLP",
115
115
  SERVICE = "SERVICE",
116
- MLP_SUBSCRIPTION = "MLP_SUBSCRIPTION"
116
+ MLP_SUBSCRIPTION = "MLP_SUBSCRIPTION",
117
+ TPL = "TPL"
117
118
  }
118
119
  }
@@ -176,7 +176,7 @@ var Booking = /** @class */ (function () {
176
176
  // Booking step is already completed, no need to call the API
177
177
  if (currentStepStatus[0])
178
178
  return [2 /*return*/, true];
179
- url = "".concat(this.config.API_ENDPOINT, "/booking/cart/").concat(this.cartId, "/bookingSteps");
179
+ url = "".concat(this.config.API_ENDPOINT, "/v3_booking/cart/").concat(this.cartId, "/bookingSteps");
180
180
  return [2 /*return*/, this.callPostApi(url, { bookingStep: bookingStep }).then(function (response) {
181
181
  if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
182
182
  return response;
@@ -195,11 +195,11 @@ var Booking = /** @class */ (function () {
195
195
  * @returns An {@link ErrorResponse} object in case of error, a {@link GetSellerGatewaysResponse} object otherwise.
196
196
  */
197
197
  Booking.prototype.getSellerGateways = function () {
198
- var _a;
199
198
  return __awaiter(this, void 0, void 0, function () {
200
- var issueStep, _b, _c, _d, _i, step, url;
201
- return __generator(this, function (_e) {
202
- switch (_e.label) {
199
+ var issueStep, _i, _a, step, url;
200
+ var _b;
201
+ return __generator(this, function (_c) {
202
+ switch (_c.label) {
203
203
  case 0:
204
204
  // First check that it is possible to call this API
205
205
  if (!this.cartId || this.cartId === 0) {
@@ -207,36 +207,30 @@ var Booking = /** @class */ (function () {
207
207
  }
208
208
  issueStep = this.bookingStepsToStatus.get(Booking.BookingSteps.ISSUE);
209
209
  if (!issueStep)
210
- throw Error("Booking step not found!");
210
+ throw Error("Booking step: ".concat(Booking.BookingSteps.ISSUE, " not found!"));
211
211
  if (!!issueStep[0]) return [3 /*break*/, 5];
212
- _b = [Booking.BookingSteps.SEATS_SELECTION, Booking.BookingSteps.EXTRAS, Booking.BookingSteps.DISCOUNTS];
213
- _c = [];
214
- for (_d in _b)
215
- _c.push(_d);
216
- _i = 0;
217
- _e.label = 1;
212
+ _i = 0, _a = [Booking.BookingSteps.SEATS_SELECTION, Booking.BookingSteps.EXTRAS, Booking.BookingSteps.DISCOUNTS];
213
+ _c.label = 1;
218
214
  case 1:
219
- if (!(_i < _c.length)) return [3 /*break*/, 4];
220
- _d = _c[_i];
221
- if (!(_d in _b)) return [3 /*break*/, 3];
222
- step = _d;
223
- if (!!((_a = this.bookingStepsToStatus.get(step)) !== null && _a !== void 0 ? _a : [false])[0]) return [3 /*break*/, 3];
215
+ if (!(_i < _a.length)) return [3 /*break*/, 4];
216
+ step = _a[_i];
217
+ if (!!((_b = this.bookingStepsToStatus.get(step)) !== null && _b !== void 0 ? _b : [false])[0]) return [3 /*break*/, 3];
224
218
  return [4 /*yield*/, this.markBookingStepCompleted(step)];
225
219
  case 2:
226
- _e.sent();
227
- _e.label = 3;
220
+ _c.sent();
221
+ _c.label = 3;
228
222
  case 3:
229
223
  _i++;
230
224
  return [3 /*break*/, 1];
231
225
  case 4:
232
226
  // Check again if the issue step is accessible
233
- issueStep = this.bookingStepsToStatus.get(Booking.BookingSteps.DISCOUNTS);
227
+ issueStep = this.bookingStepsToStatus.get(Booking.BookingSteps.ISSUE);
234
228
  if (!issueStep || !issueStep[0]) {
235
229
  throw Error("The status of the cart does not allow to call this API");
236
230
  }
237
- _e.label = 5;
231
+ _c.label = 5;
238
232
  case 5:
239
- url = "".concat(this.config.API_ENDPOINT, "/booking/sellers/").concat(this.sellerId, "/gateways?language=").concat(this.language);
233
+ url = "".concat(this.config.API_ENDPOINT, "/v3_resources/sellers/").concat(this.sellerId, "/gateways?");
240
234
  // We use directly makeGet because we don't want to add sellerId to the query string (it is already present in the url)
241
235
  return [2 /*return*/, (0, apiCall_1.makeGet)(url).then(function (response) {
242
236
  return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response;
@@ -265,7 +259,7 @@ var Booking = /** @class */ (function () {
265
259
  throw Error("The status of the cart does not allow to call this API");
266
260
  }
267
261
  searchParams = new URLSearchParams(__assign({ gatewayId: gatewayId.toString() }, (returnUrl && { returnUrl: returnUrl })));
268
- url = "".concat(this.config.API_ENDPOINT, "/booking/cart/").concat(this.cartId, "/payment?").concat(searchParams);
262
+ url = "".concat(this.config.API_ENDPOINT, "/v3_booking/cart/").concat(this.cartId, "/payment?").concat(searchParams);
269
263
  return [2 /*return*/, this.callGetApi(url).then(function (response) {
270
264
  return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response;
271
265
  })];
@@ -279,11 +273,11 @@ var Booking = /** @class */ (function () {
279
273
  * @returns An {@link IssueTicketsResponse} object.
280
274
  */
281
275
  Booking.prototype.issueTickets = function (paymentMethod) {
282
- var _a;
283
276
  return __awaiter(this, void 0, void 0, function () {
284
- var paymentMethodToSet, issueStep, _b, _c, _d, _i, step, url, body;
285
- return __generator(this, function (_e) {
286
- switch (_e.label) {
277
+ var paymentMethodToSet, issueStep, _i, _a, step, url, body;
278
+ var _b;
279
+ return __generator(this, function (_c) {
280
+ switch (_c.label) {
287
281
  case 0:
288
282
  // First check that it is possible to call this API
289
283
  if (!this.cartId || this.cartId === 0) {
@@ -302,29 +296,23 @@ var Booking = /** @class */ (function () {
302
296
  }
303
297
  })];
304
298
  case 1:
305
- _e.sent();
306
- _e.label = 2;
299
+ _c.sent();
300
+ _c.label = 2;
307
301
  case 2:
308
302
  issueStep = this.bookingStepsToStatus.get(Booking.BookingSteps.ISSUE);
309
303
  if (!issueStep)
310
304
  throw Error("Booking step not found!");
311
305
  if (!!issueStep[0]) return [3 /*break*/, 7];
312
- _b = [Booking.BookingSteps.SEATS_SELECTION, Booking.BookingSteps.EXTRAS, Booking.BookingSteps.DISCOUNTS];
313
- _c = [];
314
- for (_d in _b)
315
- _c.push(_d);
316
- _i = 0;
317
- _e.label = 3;
306
+ _i = 0, _a = [Booking.BookingSteps.SEATS_SELECTION, Booking.BookingSteps.EXTRAS, Booking.BookingSteps.DISCOUNTS];
307
+ _c.label = 3;
318
308
  case 3:
319
- if (!(_i < _c.length)) return [3 /*break*/, 6];
320
- _d = _c[_i];
321
- if (!(_d in _b)) return [3 /*break*/, 5];
322
- step = _d;
323
- if (!!((_a = this.bookingStepsToStatus.get(step)) !== null && _a !== void 0 ? _a : [false])[0]) return [3 /*break*/, 5];
309
+ if (!(_i < _a.length)) return [3 /*break*/, 6];
310
+ step = _a[_i];
311
+ if (!!((_b = this.bookingStepsToStatus.get(step)) !== null && _b !== void 0 ? _b : [false])[0]) return [3 /*break*/, 5];
324
312
  return [4 /*yield*/, this.markBookingStepCompleted(step)];
325
313
  case 4:
326
- _e.sent();
327
- _e.label = 5;
314
+ _c.sent();
315
+ _c.label = 5;
328
316
  case 5:
329
317
  _i++;
330
318
  return [3 /*break*/, 3];
@@ -334,9 +322,9 @@ var Booking = /** @class */ (function () {
334
322
  if (!issueStep || !issueStep[0]) {
335
323
  throw Error("The status of the cart does not allow to call this API");
336
324
  }
337
- _e.label = 7;
325
+ _c.label = 7;
338
326
  case 7:
339
- url = "".concat(this.config.API_ENDPOINT, "/booking/cart/").concat(this.cartId, "/issue");
327
+ url = "".concat(this.config.API_ENDPOINT, "/v3_booking/cart/").concat(this.cartId, "/issue");
340
328
  body = {
341
329
  cartId: this.cartId,
342
330
  paymentMethod: paymentMethodToSet === Payment_1.PaymentMethods.PAY_LATER ? null : paymentMethodToSet,
@@ -380,5 +368,6 @@ exports.Booking = Booking;
380
368
  BookingTypes["MLP"] = "MLP";
381
369
  BookingTypes["SERVICE"] = "SERVICE";
382
370
  BookingTypes["MLP_SUBSCRIPTION"] = "MLP_SUBSCRIPTION";
371
+ BookingTypes["TPL"] = "TPL";
383
372
  })(BookingTypes = Booking.BookingTypes || (Booking.BookingTypes = {}));
384
373
  })(Booking || (exports.Booking = Booking = {}));
@@ -21,6 +21,52 @@ export declare class JourneyBooking extends Booking {
21
21
  */
22
22
  constructor(env: MTSEnvs, sub_key: string, debug?: boolean, language?: string, access_token?: string, sellerId?: number, resellerId?: number);
23
23
  getCart(): JourneyCart | undefined;
24
+ getStorage(): import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<{
25
+ cartId: number | undefined;
26
+ } & {
27
+ updateCartId: (cartId: number | undefined) => void;
28
+ resetState: () => void;
29
+ }>, "persist"> & {
30
+ persist: {
31
+ setOptions: (options: Partial<import("zustand/middleware").PersistOptions<{
32
+ cartId: number | undefined;
33
+ } & {
34
+ updateCartId: (cartId: number | undefined) => void;
35
+ resetState: () => void;
36
+ }, {
37
+ cartId: number | undefined;
38
+ } & {
39
+ updateCartId: (cartId: number | undefined) => void;
40
+ resetState: () => void;
41
+ }>>) => void;
42
+ clearStorage: () => void;
43
+ rehydrate: () => void | Promise<void>;
44
+ hasHydrated: () => boolean;
45
+ onHydrate: (fn: (state: {
46
+ cartId: number | undefined;
47
+ } & {
48
+ updateCartId: (cartId: number | undefined) => void;
49
+ resetState: () => void;
50
+ }) => void) => () => void;
51
+ onFinishHydration: (fn: (state: {
52
+ cartId: number | undefined;
53
+ } & {
54
+ updateCartId: (cartId: number | undefined) => void;
55
+ resetState: () => void;
56
+ }) => void) => () => void;
57
+ getOptions: () => Partial<import("zustand/middleware").PersistOptions<{
58
+ cartId: number | undefined;
59
+ } & {
60
+ updateCartId: (cartId: number | undefined) => void;
61
+ resetState: () => void;
62
+ }, {
63
+ cartId: number | undefined;
64
+ } & {
65
+ updateCartId: (cartId: number | undefined) => void;
66
+ resetState: () => void;
67
+ }>>;
68
+ };
69
+ }>;
24
70
  resetBooking(): void;
25
71
  fetchAndSetCart(cartId: number): Promise<void>;
26
72
  fetchCart(cartId: number): Promise<JourneyCart>;
@@ -73,6 +73,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
73
73
  Object.defineProperty(exports, "__esModule", { value: true });
74
74
  exports.JourneyBooking = void 0;
75
75
  var config_1 = require("../config");
76
+ var mtsStorage_1 = require("../mtsStorage");
76
77
  var ErrorResponse_1 = require("../types/ErrorResponse");
77
78
  var Reduction_1 = require("../types/common/Reduction");
78
79
  var processBookingSteps_1 = require("../utils/processBookingSteps");
@@ -95,26 +96,32 @@ var JourneyBooking = /** @class */ (function (_super) {
95
96
  // Call Booking constructor
96
97
  var _this = _super.call(this, env, sub_key, booking_1.Booking.BookingTypes.MLP, debug, language, access_token, sellerId, resellerId) || this;
97
98
  // Set cartId
98
- var cartId = localStorage.getItem("cartId");
99
+ var cartId = _this.getStorage().getState().cartId;
99
100
  if (cartId) {
100
- _this.cartId = parseInt(cartId);
101
+ _this.cartId = cartId;
101
102
  }
102
103
  return _this;
103
104
  }
104
105
  JourneyBooking.prototype.getCart = function () {
105
106
  return this.cart;
106
107
  };
108
+ JourneyBooking.prototype.getStorage = function () {
109
+ if (this.config.ENV !== config_1.MTSEnvs.TEST) {
110
+ return (0, mtsStorage_1.useMtsBookingState)();
111
+ }
112
+ return (0, mtsStorage_1.useTestState)();
113
+ };
107
114
  JourneyBooking.prototype.resetBooking = function () {
108
115
  this.cart = undefined;
109
116
  this.cartId = undefined;
110
117
  this.bookingStepsToStatus = new Map();
111
118
  this.bookingDueDate = undefined;
112
119
  try {
113
- localStorage.removeItem("cartId");
120
+ this.getStorage().getState().updateCartId(undefined);
114
121
  }
115
122
  catch (e) {
116
123
  if (this.config.ENV !== config_1.MTSEnvs.TEST) {
117
- throw new Error("Error while deleting cartId from localStorage");
124
+ throw new Error("Error while deleting cartId from storage.");
118
125
  }
119
126
  console.log(e);
120
127
  }
@@ -154,7 +161,7 @@ var JourneyBooking = /** @class */ (function (_super) {
154
161
  var url;
155
162
  var _this = this;
156
163
  return __generator(this, function (_a) {
157
- url = "".concat(this.config.API_ENDPOINT, "/booking/cart?").concat(new URLSearchParams({ cartId: cartId.toString() }));
164
+ url = "".concat(this.config.API_ENDPOINT, "/v3_booking/cart?").concat(new URLSearchParams({ cartId: cartId.toString() }));
158
165
  return [2 /*return*/, this.callGetApi(url).then(function (response) {
159
166
  if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
160
167
  _this.resetBooking();
@@ -183,7 +190,7 @@ var JourneyBooking = /** @class */ (function (_super) {
183
190
  if (!this.cart || !this.cartId) {
184
191
  throw Error("Cart is not initialized yet");
185
192
  }
186
- url = "".concat(this.config.API_ENDPOINT, "/booking/carts?").concat(new URLSearchParams({ cartId: this.cartId.toString() }));
193
+ url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts?").concat(new URLSearchParams({ cartId: this.cartId.toString() }));
187
194
  return [2 /*return*/, this.callDeleteApi(url).then(function (response) {
188
195
  // Clear all data
189
196
  _this.resetBooking();
@@ -200,7 +207,7 @@ var JourneyBooking = /** @class */ (function (_super) {
200
207
  return __awaiter(this, void 0, void 0, function () {
201
208
  var url;
202
209
  return __generator(this, function (_a) {
203
- url = "".concat(this.config.API_ENDPOINT, "/booking/journeys/departures?");
210
+ url = "".concat(this.config.API_ENDPOINT, "/v3_booking/journeys/departures?");
204
211
  return [2 /*return*/, this.callGetApi(url).then(function (response) {
205
212
  return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response.stops;
206
213
  })];
@@ -217,7 +224,7 @@ var JourneyBooking = /** @class */ (function (_super) {
217
224
  var searchParams, url;
218
225
  return __generator(this, function (_a) {
219
226
  searchParams = new URLSearchParams({ departureStopName: departureStopName });
220
- url = "".concat(this.config.API_ENDPOINT, "/booking/journeys/destinations?").concat(searchParams);
227
+ url = "".concat(this.config.API_ENDPOINT, "/v3_booking/journeys/destinations?").concat(searchParams);
221
228
  return [2 /*return*/, this.callGetApi(url).then(function (response) {
222
229
  return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response.stops;
223
230
  })];
@@ -239,7 +246,7 @@ var JourneyBooking = /** @class */ (function (_super) {
239
246
  throw Error("Fields departureStopName and destinationStopName are required");
240
247
  }
241
248
  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() })));
242
- url = "".concat(this.config.API_ENDPOINT, "/booking/journeys?").concat(searchParams);
249
+ url = "".concat(this.config.API_ENDPOINT, "/v3_booking/journeys?").concat(searchParams);
243
250
  return [2 /*return*/, this.callGetApi(url).then(function (response) {
244
251
  return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response.journeys;
245
252
  })];
@@ -251,19 +258,19 @@ var JourneyBooking = /** @class */ (function (_super) {
251
258
  var url, request;
252
259
  var _this = this;
253
260
  return __generator(this, function (_a) {
254
- url = "".concat(this.config.API_ENDPOINT, "/booking/journeys/cart");
261
+ url = "".concat(this.config.API_ENDPOINT, "/v3_booking/journeys/cart");
255
262
  request = __assign(__assign({}, journeyCart), (this.cartId && { cartId: this.cartId.toString() }));
256
263
  return [2 /*return*/, this.callPostApi(url, request).then(function (response) {
257
264
  // Check for errors
258
265
  if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
259
- // If there was an error, reset cartId and remove it from the localStorage
266
+ // If there was an error, reset cartId and remove it from the mts-storage
260
267
  _this.resetBooking();
261
268
  return response;
262
269
  }
263
270
  _this.cart = response.cart;
264
271
  _this.cartId = response.cart.id;
265
- // Save the cartId in the localStorage
266
- localStorage.setItem("cartId", response.cart.id.toString());
272
+ // Save the cartId in the storage
273
+ _this.getStorage().getState().updateCartId(response.cart.id);
267
274
  // Fill the booking process status
268
275
  _this.bookingStepsToStatus = (0, processBookingSteps_1.processBookingSteps)(response.cart.stepsToStatus);
269
276
  _this.bookingDueDate = new Date(response.cart.bookingDueDate);
@@ -291,7 +298,7 @@ var JourneyBooking = /** @class */ (function (_super) {
291
298
  if (!buyerPassengersDetails || !buyerPassengersDetails[0]) {
292
299
  throw Error("The status of the cart does not allow to call this API");
293
300
  }
294
- url = "".concat(this.config.API_ENDPOINT, "/booking/cart/").concat(this.cart.id, "/details?");
301
+ url = "".concat(this.config.API_ENDPOINT, "/v3_booking/cart/").concat(this.cart.id, "/details?");
295
302
  return [2 /*return*/, this.callGetApi(url).then(function (response) {
296
303
  // Check for errors
297
304
  if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
@@ -350,7 +357,7 @@ var JourneyBooking = /** @class */ (function (_super) {
350
357
  throw Error("At least one of the parameters linkavelCard or phoneNumber must be set");
351
358
  }
352
359
  searchParams = new URLSearchParams(__assign(__assign({}, (linkavelCard && { linkavelCard: linkavelCard })), (phoneNumber && { phoneNumber: phoneNumber })));
353
- url = "".concat(this.config.API_ENDPOINT, "/buyers?").concat(searchParams);
360
+ url = "".concat(this.config.API_ENDPOINT, "/v3_resources/buyers?").concat(searchParams);
354
361
  return [2 /*return*/, this.callGetApi(url).then(function (response) {
355
362
  // Check for errors
356
363
  if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
@@ -387,7 +394,7 @@ var JourneyBooking = /** @class */ (function (_super) {
387
394
  });
388
395
  request.passengers[passengerIndex].tripsToTariffs = tripsToTariffsToJson;
389
396
  });
390
- url = "".concat(this.config.API_ENDPOINT, "/booking/cart/").concat(this.cart.id, "/details");
397
+ url = "".concat(this.config.API_ENDPOINT, "/v3_booking/cart/").concat(this.cart.id, "/details");
391
398
  return [2 /*return*/, this.callPostApi(url, request).then(function (response) {
392
399
  if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
393
400
  return response;
@@ -423,7 +430,7 @@ var JourneyBooking = /** @class */ (function (_super) {
423
430
  departureStopId: departureStopId.toString(),
424
431
  destinationStopId: destinationStopId.toString()
425
432
  });
426
- url = "".concat(this.config.API_ENDPOINT, "/booking/journeys/trips/").concat(tripId, "/seats?").concat(searchParams);
433
+ url = "".concat(this.config.API_ENDPOINT, "/v3_booking/journeys/trips/").concat(tripId, "/seats?").concat(searchParams);
427
434
  return [2 /*return*/, this.callGetApi(url).then(function (response) {
428
435
  return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response.busMatrix;
429
436
  })];
@@ -448,7 +455,7 @@ var JourneyBooking = /** @class */ (function (_super) {
448
455
  throw Error("The status of the cart does not allow to call this API");
449
456
  }
450
457
  searchParams = new URLSearchParams({ tripId: tripId.toString() });
451
- url = "".concat(this.config.API_ENDPOINT, "/booking/cart/").concat(this.cart.id, "/seats?").concat(searchParams);
458
+ url = "".concat(this.config.API_ENDPOINT, "/v3_booking/cart/").concat(this.cart.id, "/seats?").concat(searchParams);
452
459
  return [2 /*return*/, this.callGetApi(url).then(function (response) {
453
460
  return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response.assignedSeats;
454
461
  })];
@@ -474,7 +481,7 @@ var JourneyBooking = /** @class */ (function (_super) {
474
481
  if (!seatSelectionStatus || !seatSelectionStatus[0]) {
475
482
  throw Error("The status of the cart does not allow to call this API");
476
483
  }
477
- url = "".concat(this.config.API_ENDPOINT, "/booking/cart/").concat(this.cart.id, "/seats");
484
+ url = "".concat(this.config.API_ENDPOINT, "/v3_booking/cart/").concat(this.cart.id, "/seats");
478
485
  return [2 /*return*/, this.callPostApi(url, { tripId: tripId, newSeatsIds: newSeatsIds }).then(function (response) {
479
486
  if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
480
487
  return response;
@@ -501,7 +508,7 @@ var JourneyBooking = /** @class */ (function (_super) {
501
508
  if (!this.cart) {
502
509
  throw Error("Cart is not initialized yet");
503
510
  }
504
- url = "".concat(this.config.API_ENDPOINT, "/booking/cart/").concat(this.cart.id, "/payment/reduction/trips?");
511
+ url = "".concat(this.config.API_ENDPOINT, "/v3_booking/cart/").concat(this.cart.id, "/payment/reduction/trips?");
505
512
  return [2 /*return*/, this.callGetApi(url).then(function (response) {
506
513
  return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response.trips;
507
514
  })];
@@ -514,12 +521,12 @@ var JourneyBooking = /** @class */ (function (_super) {
514
521
  * @returns An {@link ErrorResponse} object in case of error, true otherwise. Also, the cart is updated.
515
522
  */
516
523
  JourneyBooking.prototype.addReduction = function (request) {
517
- var _a;
518
524
  return __awaiter(this, void 0, void 0, function () {
519
- var discountsStep, _b, _c, _d, _i, step, url;
525
+ var discountsStep, _i, _a, step, url;
520
526
  var _this = this;
521
- return __generator(this, function (_e) {
522
- switch (_e.label) {
527
+ var _b;
528
+ return __generator(this, function (_c) {
529
+ switch (_c.label) {
523
530
  case 0:
524
531
  // First check that it is possible to call this API
525
532
  if (!this.cartId || this.cartId === 0) {
@@ -529,22 +536,16 @@ var JourneyBooking = /** @class */ (function (_super) {
529
536
  if (!discountsStep)
530
537
  throw Error("Booking step not found!");
531
538
  if (!!discountsStep[0]) return [3 /*break*/, 5];
532
- _b = [booking_1.Booking.BookingSteps.SEATS_SELECTION, booking_1.Booking.BookingSteps.EXTRAS];
533
- _c = [];
534
- for (_d in _b)
535
- _c.push(_d);
536
- _i = 0;
537
- _e.label = 1;
539
+ _i = 0, _a = [booking_1.Booking.BookingSteps.SEATS_SELECTION, booking_1.Booking.BookingSteps.EXTRAS];
540
+ _c.label = 1;
538
541
  case 1:
539
- if (!(_i < _c.length)) return [3 /*break*/, 4];
540
- _d = _c[_i];
541
- if (!(_d in _b)) return [3 /*break*/, 3];
542
- step = _d;
543
- if (!!((_a = this.bookingStepsToStatus.get(step)) !== null && _a !== void 0 ? _a : [false])[0]) return [3 /*break*/, 3];
542
+ if (!(_i < _a.length)) return [3 /*break*/, 4];
543
+ step = _a[_i];
544
+ if (!!((_b = this.bookingStepsToStatus.get(step)) !== null && _b !== void 0 ? _b : [false])[0]) return [3 /*break*/, 3];
544
545
  return [4 /*yield*/, this.markBookingStepCompleted(step)];
545
546
  case 2:
546
- _e.sent();
547
- _e.label = 3;
547
+ _c.sent();
548
+ _c.label = 3;
548
549
  case 3:
549
550
  _i++;
550
551
  return [3 /*break*/, 1];
@@ -554,9 +555,9 @@ var JourneyBooking = /** @class */ (function (_super) {
554
555
  if (!discountsStep || !discountsStep[0]) {
555
556
  throw Error("The status of the cart does not allow to call this API");
556
557
  }
557
- _e.label = 5;
558
+ _c.label = 5;
558
559
  case 5:
559
- url = "".concat(this.config.API_ENDPOINT, "/booking/cart/").concat(this.cartId, "/payment/reduction");
560
+ url = "".concat(this.config.API_ENDPOINT, "/v3_booking/cart/").concat(this.cartId, "/payment/reduction");
560
561
  return [2 /*return*/, this.callPostApi(url, request).then(function (response) {
561
562
  var _a, _b;
562
563
  if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
@@ -593,7 +594,7 @@ var JourneyBooking = /** @class */ (function (_super) {
593
594
  throw Error("The status of the cart does not allow to call this API");
594
595
  }
595
596
  queryParams = new URLSearchParams({ tripId: tripId.toString() });
596
- url = "".concat(this.config.API_ENDPOINT, "/booking/cart/").concat(this.cartId, "/payment/reduction?").concat(queryParams);
597
+ url = "".concat(this.config.API_ENDPOINT, "/v3_booking/cart/").concat(this.cartId, "/payment/reduction?").concat(queryParams);
597
598
  return [2 /*return*/, this.callDeleteApi(url).then(function (response) {
598
599
  var _a, _b, _c;
599
600
  if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
@@ -618,49 +619,43 @@ var JourneyBooking = /** @class */ (function (_super) {
618
619
  * @returns An {@link ErrorResponse} object in case of error, true otherwise.
619
620
  */
620
621
  JourneyBooking.prototype.useWallet = function () {
621
- var _a;
622
622
  return __awaiter(this, void 0, void 0, function () {
623
- var discountsStep, _b, _c, _d, _i, step, url;
623
+ var issueStep, _i, _a, step, url;
624
624
  var _this = this;
625
- return __generator(this, function (_e) {
626
- switch (_e.label) {
625
+ var _b;
626
+ return __generator(this, function (_c) {
627
+ switch (_c.label) {
627
628
  case 0:
628
629
  // First check that it is possible to call this API
629
630
  if (!this.cartId || this.cartId === 0) {
630
631
  throw Error("Cart is not initialized yet");
631
632
  }
632
- discountsStep = this.bookingStepsToStatus.get(booking_1.Booking.BookingSteps.DISCOUNTS);
633
- if (!discountsStep)
634
- throw Error("Booking step not found!");
635
- if (!!discountsStep[0]) return [3 /*break*/, 5];
636
- _b = [booking_1.Booking.BookingSteps.SEATS_SELECTION, booking_1.Booking.BookingSteps.EXTRAS];
637
- _c = [];
638
- for (_d in _b)
639
- _c.push(_d);
640
- _i = 0;
641
- _e.label = 1;
633
+ issueStep = this.bookingStepsToStatus.get(booking_1.Booking.BookingSteps.ISSUE);
634
+ if (!issueStep)
635
+ throw Error("Booking step: ".concat(booking_1.Booking.BookingSteps.ISSUE, " not found!"));
636
+ if (!!issueStep[0]) return [3 /*break*/, 5];
637
+ _i = 0, _a = [booking_1.Booking.BookingSteps.SEATS_SELECTION, booking_1.Booking.BookingSteps.EXTRAS, booking_1.Booking.BookingSteps.DISCOUNTS];
638
+ _c.label = 1;
642
639
  case 1:
643
- if (!(_i < _c.length)) return [3 /*break*/, 4];
644
- _d = _c[_i];
645
- if (!(_d in _b)) return [3 /*break*/, 3];
646
- step = _d;
647
- if (!!((_a = this.bookingStepsToStatus.get(step)) !== null && _a !== void 0 ? _a : [false])[0]) return [3 /*break*/, 3];
640
+ if (!(_i < _a.length)) return [3 /*break*/, 4];
641
+ step = _a[_i];
642
+ if (!!((_b = this.bookingStepsToStatus.get(step)) !== null && _b !== void 0 ? _b : [false])[0]) return [3 /*break*/, 3];
648
643
  return [4 /*yield*/, this.markBookingStepCompleted(step)];
649
644
  case 2:
650
- _e.sent();
651
- _e.label = 3;
645
+ _c.sent();
646
+ _c.label = 3;
652
647
  case 3:
653
648
  _i++;
654
649
  return [3 /*break*/, 1];
655
650
  case 4:
656
651
  // Check again if the discounts step is accessible
657
- discountsStep = this.bookingStepsToStatus.get(booking_1.Booking.BookingSteps.DISCOUNTS);
658
- if (!discountsStep || !discountsStep[0]) {
659
- throw Error("The status of the cart does not allow to call this API");
652
+ issueStep = this.bookingStepsToStatus.get(booking_1.Booking.BookingSteps.ISSUE);
653
+ if (!issueStep || !issueStep[0]) {
654
+ throw Error("The status of the cart does not allow to call the API: booking/cart/".concat(this.cartId, "/payment/wallet"));
660
655
  }
661
- _e.label = 5;
656
+ _c.label = 5;
662
657
  case 5:
663
- url = "".concat(this.config.API_ENDPOINT, "/booking/cart/").concat(this.cartId, "/payment/wallet");
658
+ url = "".concat(this.config.API_ENDPOINT, "/v3_booking/cart/").concat(this.cartId, "/payment/wallet");
664
659
  return [2 /*return*/, this.callPostApi(url, {}).then(function (response) {
665
660
  var _a, _b;
666
661
  if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
@@ -691,7 +686,7 @@ var JourneyBooking = /** @class */ (function (_super) {
691
686
  if (!this.cartId || this.cartId === 0) {
692
687
  throw Error("Cart is not initialized yet");
693
688
  }
694
- url = "".concat(this.config.API_ENDPOINT, "/booking/cart/").concat(this.cartId, "/payment/wallet");
689
+ url = "".concat(this.config.API_ENDPOINT, "/v3_booking/cart/").concat(this.cartId, "/payment/wallet");
695
690
  return [2 /*return*/, this.callDeleteApi(url).then(function (response) {
696
691
  var _a, _b, _c;
697
692
  if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
@@ -715,12 +710,12 @@ var JourneyBooking = /** @class */ (function (_super) {
715
710
  * @returns An {@link ErrorResponse} object in case of error, true otherwise.
716
711
  */
717
712
  JourneyBooking.prototype.useVoucher = function (voucherCode) {
718
- var _a;
719
713
  return __awaiter(this, void 0, void 0, function () {
720
- var discountsStep, _b, _c, _d, _i, step, url;
714
+ var discountsStep, _i, _a, step, url;
721
715
  var _this = this;
722
- return __generator(this, function (_e) {
723
- switch (_e.label) {
716
+ var _b;
717
+ return __generator(this, function (_c) {
718
+ switch (_c.label) {
724
719
  case 0:
725
720
  // First check that it is possible to call this API
726
721
  if (!this.cartId || this.cartId === 0) {
@@ -730,22 +725,16 @@ var JourneyBooking = /** @class */ (function (_super) {
730
725
  if (!discountsStep)
731
726
  throw Error("Booking step not found!");
732
727
  if (!!discountsStep[0]) return [3 /*break*/, 5];
733
- _b = [booking_1.Booking.BookingSteps.SEATS_SELECTION, booking_1.Booking.BookingSteps.EXTRAS];
734
- _c = [];
735
- for (_d in _b)
736
- _c.push(_d);
737
- _i = 0;
738
- _e.label = 1;
728
+ _i = 0, _a = [booking_1.Booking.BookingSteps.SEATS_SELECTION, booking_1.Booking.BookingSteps.EXTRAS];
729
+ _c.label = 1;
739
730
  case 1:
740
- if (!(_i < _c.length)) return [3 /*break*/, 4];
741
- _d = _c[_i];
742
- if (!(_d in _b)) return [3 /*break*/, 3];
743
- step = _d;
744
- if (!!((_a = this.bookingStepsToStatus.get(step)) !== null && _a !== void 0 ? _a : [false])[0]) return [3 /*break*/, 3];
731
+ if (!(_i < _a.length)) return [3 /*break*/, 4];
732
+ step = _a[_i];
733
+ if (!!((_b = this.bookingStepsToStatus.get(step)) !== null && _b !== void 0 ? _b : [false])[0]) return [3 /*break*/, 3];
745
734
  return [4 /*yield*/, this.markBookingStepCompleted(step)];
746
735
  case 2:
747
- _e.sent();
748
- _e.label = 3;
736
+ _c.sent();
737
+ _c.label = 3;
749
738
  case 3:
750
739
  _i++;
751
740
  return [3 /*break*/, 1];
@@ -755,9 +744,9 @@ var JourneyBooking = /** @class */ (function (_super) {
755
744
  if (!discountsStep || !discountsStep[0]) {
756
745
  throw Error("The status of the cart does not allow to call this API");
757
746
  }
758
- _e.label = 5;
747
+ _c.label = 5;
759
748
  case 5:
760
- url = "".concat(this.config.API_ENDPOINT, "/booking/cart/").concat(this.cartId, "/payment/voucher");
749
+ url = "".concat(this.config.API_ENDPOINT, "/v3_booking/cart/").concat(this.cartId, "/payment/voucher");
761
750
  return [2 /*return*/, this.callPostApi(url, { voucherCode: voucherCode }).then(function (response) {
762
751
  var _a, _b;
763
752
  if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
@@ -796,10 +785,10 @@ exports.JourneyBooking = JourneyBooking;
796
785
  case 3: return [2 /*return*/, booking];
797
786
  case 4:
798
787
  error_1 = _a.sent();
799
- // Check if the error is due to an expired cart. In this case, delete the cartId from the localStorage
788
+ // Check if the error is due to an expired cart. In this case, delete the cartId from the mts-storage
800
789
  // This error can occur when the user refreshes the page and the cart has expired
801
790
  if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(error_1) && error_1.mtsCode === 40053) {
802
- localStorage.removeItem("cartId");
791
+ booking.getStorage().getState().updateCartId(undefined);
803
792
  booking.cartId = undefined;
804
793
  return [2 /*return*/, booking];
805
794
  }