mts-booking-library 1.4.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
1
1
  import { ErrorResponse } from "../types/ErrorResponse";
2
- import { Buyer, GetBuyerPassengersDetailsResponse, GetBuyerRequest } from "../types/common/Person";
2
+ import { PersonDetails, GetBuyerPassengersDetailsResponse } from "../types/common/Person";
3
3
  import { AddReductionRequest } from "../types/common/Reduction";
4
4
  import { Service, ServiceTripsResponse } from "../types/services/Service";
5
5
  import { CreateServiceCartRequest, ServiceCart } from "../types/services/ServiceCart";
@@ -11,54 +11,47 @@ export declare class ServiceBooking extends Booking {
11
11
  */
12
12
  constructor({ env, subKey, debug, language, sessionId, restoreState, accessToken, sellerId, resellerId, dbType }: Omit<Booking.BookingConfig, "bookingType">);
13
13
  getStorage(): import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<{
14
- cartId: number | undefined;
15
14
  cartGuid: string | undefined;
16
15
  } & {
17
- updateCartId: (cartId: number | undefined, cartGuid: string | undefined) => void;
16
+ updateCartGuid: (cartGuid: string | undefined) => void;
18
17
  resetState: () => void;
19
18
  }>, "persist"> & {
20
19
  persist: {
21
20
  setOptions: (options: Partial<import("zustand/middleware").PersistOptions<{
22
- cartId: number | undefined;
23
21
  cartGuid: string | undefined;
24
22
  } & {
25
- updateCartId: (cartId: number | undefined, cartGuid: string | undefined) => void;
23
+ updateCartGuid: (cartGuid: string | undefined) => void;
26
24
  resetState: () => void;
27
25
  }, {
28
- cartId: number | undefined;
29
26
  cartGuid: string | undefined;
30
27
  } & {
31
- updateCartId: (cartId: number | undefined, cartGuid: string | undefined) => void;
28
+ updateCartGuid: (cartGuid: string | undefined) => void;
32
29
  resetState: () => void;
33
30
  }>>) => void;
34
31
  clearStorage: () => void;
35
32
  rehydrate: () => Promise<void> | void;
36
33
  hasHydrated: () => boolean;
37
34
  onHydrate: (fn: (state: {
38
- cartId: number | undefined;
39
35
  cartGuid: string | undefined;
40
36
  } & {
41
- updateCartId: (cartId: number | undefined, cartGuid: string | undefined) => void;
37
+ updateCartGuid: (cartGuid: string | undefined) => void;
42
38
  resetState: () => void;
43
39
  }) => void) => () => void;
44
40
  onFinishHydration: (fn: (state: {
45
- cartId: number | undefined;
46
41
  cartGuid: string | undefined;
47
42
  } & {
48
- updateCartId: (cartId: number | undefined, cartGuid: string | undefined) => void;
43
+ updateCartGuid: (cartGuid: string | undefined) => void;
49
44
  resetState: () => void;
50
45
  }) => void) => () => void;
51
46
  getOptions: () => Partial<import("zustand/middleware").PersistOptions<{
52
- cartId: number | undefined;
53
47
  cartGuid: string | undefined;
54
48
  } & {
55
- updateCartId: (cartId: number | undefined, cartGuid: string | undefined) => void;
49
+ updateCartGuid: (cartGuid: string | undefined) => void;
56
50
  resetState: () => void;
57
51
  }, {
58
- cartId: number | undefined;
59
52
  cartGuid: string | undefined;
60
53
  } & {
61
- updateCartId: (cartId: number | undefined, cartGuid: string | undefined) => void;
54
+ updateCartGuid: (cartGuid: string | undefined) => void;
62
55
  resetState: () => void;
63
56
  }>>;
64
57
  };
@@ -103,19 +96,13 @@ export declare class ServiceBooking extends Booking {
103
96
  * as well as a list of the available tariffs for each trip.
104
97
  */
105
98
  getBuyerPassengersDetails(): Promise<ErrorResponse | GetBuyerPassengersDetailsResponse>;
106
- /**
107
- * @description This method shall be called when the user wants to retrieve information about an esisting buyer.
108
- * @param {GetBuyerRequest} request The object containing the parameters to search the buyer.
109
- * @returns An object of type {@link Buyer} containing the buyer information, or an {@link ErrorResponse} object in case of error.
110
- */
111
- getBuyer(request: GetBuyerRequest): Promise<ErrorResponse | Buyer>;
112
99
  /**
113
100
  * @description This method shall be called when the user wants to update the buyer information.
114
101
  * @param buyerDetails The object containing the buyer information.
115
102
  * It should be null if the buyer data cannot be specified (see {@link GetBuyerPassengersDetailsResponse.buyerDataStatus}).
116
103
  * @returns An {@link ErrorResponse} object in case of error, true otherwise.
117
104
  */
118
- updateBuyerPassengersDetails(buyerDetails: Buyer | null): Promise<ErrorResponse | boolean>;
105
+ updateBuyerPassengersDetails(buyerDetails: PersonDetails | null): Promise<ErrorResponse | boolean>;
119
106
  /**
120
107
  * @description This method allows to add a reduction to the whole cart or to a single trip in the cart.
121
108
  * @param {AddReductionRequest} request The information about the reduction to add
@@ -35,8 +35,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
35
35
  });
36
36
  };
37
37
  var __generator = (this && this.__generator) || function (thisArg, body) {
38
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
39
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
38
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
39
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
40
40
  function verb(n) { return function (v) { return step([n, v]); }; }
41
41
  function step(op) {
42
42
  if (f) throw new TypeError("Generator is already executing.");
@@ -99,11 +99,8 @@ var ServiceBooking = /** @class */ (function (_super) {
99
99
  resellerId: resellerId,
100
100
  dbType: dbType
101
101
  }) || this;
102
- // Set cartId & cartGuid
103
- var _b = _this.getStorage().getState(), cartId = _b.cartId, cartGuid = _b.cartGuid;
104
- if (cartId && restoreState) {
105
- _this.cartId = cartId;
106
- }
102
+ // Set cartGuid
103
+ var cartGuid = _this.getStorage().getState().cartGuid;
107
104
  if (cartGuid && restoreState) {
108
105
  _this.cartGuid = cartGuid;
109
106
  }
@@ -120,16 +117,15 @@ var ServiceBooking = /** @class */ (function (_super) {
120
117
  };
121
118
  ServiceBooking.prototype.resetBooking = function () {
122
119
  this.cart = undefined;
123
- this.cartId = undefined;
124
120
  this.cartGuid = undefined;
125
121
  this.bookingStepsToStatus = new Map();
126
122
  this.bookingDueDate = undefined;
127
123
  try {
128
- this.getStorage().getState().updateCartId(undefined, undefined);
124
+ this.getStorage().getState().updateCartGuid(undefined);
129
125
  }
130
126
  catch (e) {
131
127
  if (this.config.ENV !== config_1.MTSEnvs.TEST) {
132
- throw new Error("Error while deleting cartId from storage");
128
+ throw new Error("Error while deleting cartGuid from storage");
133
129
  }
134
130
  console.log(e);
135
131
  }
@@ -145,7 +141,6 @@ var ServiceBooking = /** @class */ (function (_super) {
145
141
  cartDueDate.setSeconds(cartDueDate.getSeconds() + cart.bookingDueDateRemainingSeconds);
146
142
  if (cartDueDate > new Date() && !cart.hasIssuedTickets) {
147
143
  _this.cart = cart;
148
- _this.cartId = cart.id;
149
144
  _this.cartGuid = cart.guid;
150
145
  _this.bookingDueDate = cartDueDate; // See Booking class
151
146
  // Update the sellerId. This is particularly important in Linkavel
@@ -260,8 +255,8 @@ var ServiceBooking = /** @class */ (function (_super) {
260
255
  return __awaiter(this, void 0, void 0, function () {
261
256
  var searchParams, url;
262
257
  return __generator(this, function (_a) {
263
- searchParams = new URLSearchParams({ date: date });
264
- url = "".concat(this.config.API_ENDPOINT, "/v3_booking/services/").concat(serviceId, "/trips?").concat(searchParams);
258
+ searchParams = new URLSearchParams({ serviceId: serviceId.toString(), date: date });
259
+ url = "".concat(this.config.API_ENDPOINT, "/v3_booking/services/trips?").concat(searchParams);
265
260
  return [2 /*return*/, this.callGetApi(url).then(function (response) {
266
261
  return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
267
262
  ? response
@@ -279,16 +274,15 @@ var ServiceBooking = /** @class */ (function (_super) {
279
274
  return [2 /*return*/, this.callPostApi(url, serviceCart).then(function (response) {
280
275
  // Check for errors
281
276
  if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
282
- // If there was an error, reset cartId and remove it from the mts-storage
277
+ // If there was an error, reset cartGuid and remove it from the mts-storage
283
278
  _this.resetBooking();
284
279
  return response;
285
280
  }
286
281
  // Save the local data
287
282
  _this.cart = response.cart;
288
- _this.cartId = response.cart.id;
289
283
  _this.cartGuid = response.cart.guid;
290
- // Save the cartId in the mts-storage
291
- _this.getStorage().getState().updateCartId(response.cart.id, response.cart.guid);
284
+ // Save the cartGuid in the mts-storage
285
+ _this.getStorage().getState().updateCartGuid(response.cart.guid);
292
286
  // Fill the booking process status
293
287
  _this.bookingStepsToStatus = (0, processBookingSteps_1.processBookingSteps)(response.cart.stepsToStatus);
294
288
  var cartDueDate = new Date();
@@ -301,7 +295,7 @@ var ServiceBooking = /** @class */ (function (_super) {
301
295
  });
302
296
  });
303
297
  };
304
- //#region Buyer data API
298
+ //#region PersonDetails data API
305
299
  /**
306
300
  * @description This method shall be called when the user wants to retrieve information about the buyer and the passengers.
307
301
  * @returns An object of type {@link GetBuyerPassengersDetailsResponse} containing the buyer and the passengers information,
@@ -335,39 +329,6 @@ var ServiceBooking = /** @class */ (function (_super) {
335
329
  });
336
330
  });
337
331
  };
338
- /**
339
- * @description This method shall be called when the user wants to retrieve information about an esisting buyer.
340
- * @param {GetBuyerRequest} request The object containing the parameters to search the buyer.
341
- * @returns An object of type {@link Buyer} containing the buyer information, or an {@link ErrorResponse} object in case of error.
342
- */
343
- ServiceBooking.prototype.getBuyer = function (request) {
344
- return __awaiter(this, void 0, void 0, function () {
345
- var buyerPassengersDetails, searchParams, url;
346
- var _a;
347
- return __generator(this, function (_b) {
348
- // First check that it is possible to call this API
349
- if (!this.cart) {
350
- throw Error("Cart is not initialized yet");
351
- }
352
- buyerPassengersDetails = this.bookingStepsToStatus.get(booking_1.Booking.BookingSteps.BUYER_PASSENGERS);
353
- if (!buyerPassengersDetails || !buyerPassengersDetails[0]) {
354
- throw Error("The status of the cart does not allow to call this API");
355
- }
356
- if (!request.personId && !request.personCode && !request.phoneNumber) {
357
- throw Error("At least one of the parameters personId, personCode or phoneNumber must be set");
358
- }
359
- searchParams = new URLSearchParams(__assign(__assign(__assign({}, (request.personId && { personId: (_a = request.personId) === null || _a === void 0 ? void 0 : _a.toString() })), (request.personCode && { personCode: request.personCode })), (request.phoneNumber && { phoneNumber: request.phoneNumber })));
360
- url = "".concat(this.config.API_ENDPOINT, "/v3_customers/persons?").concat(searchParams);
361
- return [2 /*return*/, this.callGetApi(url).then(function (response) {
362
- // Check for errors
363
- if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
364
- return response;
365
- }
366
- return response.persons[0];
367
- })];
368
- });
369
- });
370
- };
371
332
  /**
372
333
  * @description This method shall be called when the user wants to update the buyer information.
373
334
  * @param buyerDetails The object containing the buyer information.
@@ -449,7 +410,7 @@ var ServiceBooking = /** @class */ (function (_super) {
449
410
  _c.label = 5;
450
411
  case 5:
451
412
  url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/reduction");
452
- return [2 /*return*/, this.callPostApi(url, __assign(__assign({}, request), { cartId: this.cartId, cartGuid: this.cartGuid })).then(function (response) {
413
+ return [2 /*return*/, this.callPostApi(url, __assign(__assign({}, request), { cartGuid: this.cartGuid })).then(function (response) {
453
414
  var _a, _b;
454
415
  if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
455
416
  return response;
@@ -484,7 +445,10 @@ var ServiceBooking = /** @class */ (function (_super) {
484
445
  if (!discountsStep || !discountsStep[0]) {
485
446
  throw Error("The status of the cart does not allow to call this API");
486
447
  }
487
- queryParams = new URLSearchParams({ tripId: tripId.toString(), cartId: this.cartId.toString(), cartGuid: this.cartGuid });
448
+ queryParams = new URLSearchParams({
449
+ tripId: tripId.toString(),
450
+ cartGuid: this.cartGuid
451
+ });
488
452
  url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/reduction?").concat(queryParams);
489
453
  return [2 /*return*/, this.callDeleteApi(url).then(function (response) {
490
454
  var _a, _b, _c;
@@ -553,7 +517,7 @@ var ServiceBooking = /** @class */ (function (_super) {
553
517
  _c.label = 5;
554
518
  case 5:
555
519
  url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/wallet");
556
- return [2 /*return*/, this.callPostApi(url, { cartId: this.cartId, cartGuid: this.cartGuid }).then(function (response) {
520
+ return [2 /*return*/, this.callPostApi(url, { cartGuid: this.cartGuid }).then(function (response) {
557
521
  var _a, _b;
558
522
  if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
559
523
  return response;
@@ -583,7 +547,9 @@ var ServiceBooking = /** @class */ (function (_super) {
583
547
  if ((0, utils_1.isNullOrWhiteSpace)(this.cartGuid)) {
584
548
  throw Error("Cart is not initialized yet");
585
549
  }
586
- queryParams = new URLSearchParams({ cartId: this.cartId.toString(), cartGuid: this.cartGuid });
550
+ queryParams = new URLSearchParams({
551
+ cartGuid: this.cartGuid
552
+ });
587
553
  url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/wallet?").concat(queryParams);
588
554
  return [2 /*return*/, this.callDeleteApi(url).then(function (response) {
589
555
  var _a, _b, _c;
@@ -695,11 +661,10 @@ exports.ServiceBooking = ServiceBooking;
695
661
  case 3: return [2 /*return*/, booking];
696
662
  case 4:
697
663
  error_1 = _c.sent();
698
- // Check if the error is due to an expired cart. In this case, delete the cartId from the mts-storage
664
+ // Check if the error is due to an expired cart. In this case, delete the cartGuid from the mts-storage
699
665
  // This error can occur when the user refreshes the page and the cart has expired
700
666
  if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(error_1) && error_1.mtsCode === 40053) {
701
- booking.getStorage().getState().updateCartId(undefined, undefined);
702
- booking.cartId = undefined;
667
+ booking.getStorage().getState().updateCartGuid(undefined);
703
668
  booking.cartGuid = undefined;
704
669
  return [2 /*return*/, booking];
705
670
  }
@@ -1,5 +1,5 @@
1
1
  import { ErrorResponse } from "../types/ErrorResponse";
2
- import { Buyer, EditPassengersDetailsRequest, GetBuyerPassengersDetailsResponse, GetBuyerRequest } from "../types/common/Person";
2
+ import { EditPassengersDetailsRequest, GetBuyerPassengersDetailsResponse } from "../types/common/Person";
3
3
  import { AddReductionRequest } from "../types/common/Reduction";
4
4
  import { GetSubscriptionAvailabilityRequest, GetSubscriptionAvailabilityResponse } from "../types/subscriptions/SubscriptionAvailabilities";
5
5
  import { CreateSubscriptionCartRequest, SubscriptionCart } from "../types/subscriptions/SubscriptionCart";
@@ -12,54 +12,47 @@ export declare class SubscriptionBooking extends Booking {
12
12
  */
13
13
  constructor({ env, subKey, debug, language, sessionId, restoreState, accessToken, sellerId, resellerId, dbType }: Omit<Booking.BookingConfig, "bookingType">);
14
14
  getStorage(): import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<{
15
- cartId: number | undefined;
16
15
  cartGuid: string | undefined;
17
16
  } & {
18
- updateCartId: (cartId: number | undefined, cartGuid: string | undefined) => void;
17
+ updateCartGuid: (cartGuid: string | undefined) => void;
19
18
  resetState: () => void;
20
19
  }>, "persist"> & {
21
20
  persist: {
22
21
  setOptions: (options: Partial<import("zustand/middleware").PersistOptions<{
23
- cartId: number | undefined;
24
22
  cartGuid: string | undefined;
25
23
  } & {
26
- updateCartId: (cartId: number | undefined, cartGuid: string | undefined) => void;
24
+ updateCartGuid: (cartGuid: string | undefined) => void;
27
25
  resetState: () => void;
28
26
  }, {
29
- cartId: number | undefined;
30
27
  cartGuid: string | undefined;
31
28
  } & {
32
- updateCartId: (cartId: number | undefined, cartGuid: string | undefined) => void;
29
+ updateCartGuid: (cartGuid: string | undefined) => void;
33
30
  resetState: () => void;
34
31
  }>>) => void;
35
32
  clearStorage: () => void;
36
33
  rehydrate: () => Promise<void> | void;
37
34
  hasHydrated: () => boolean;
38
35
  onHydrate: (fn: (state: {
39
- cartId: number | undefined;
40
36
  cartGuid: string | undefined;
41
37
  } & {
42
- updateCartId: (cartId: number | undefined, cartGuid: string | undefined) => void;
38
+ updateCartGuid: (cartGuid: string | undefined) => void;
43
39
  resetState: () => void;
44
40
  }) => void) => () => void;
45
41
  onFinishHydration: (fn: (state: {
46
- cartId: number | undefined;
47
42
  cartGuid: string | undefined;
48
43
  } & {
49
- updateCartId: (cartId: number | undefined, cartGuid: string | undefined) => void;
44
+ updateCartGuid: (cartGuid: string | undefined) => void;
50
45
  resetState: () => void;
51
46
  }) => void) => () => void;
52
47
  getOptions: () => Partial<import("zustand/middleware").PersistOptions<{
53
- cartId: number | undefined;
54
48
  cartGuid: string | undefined;
55
49
  } & {
56
- updateCartId: (cartId: number | undefined, cartGuid: string | undefined) => void;
50
+ updateCartGuid: (cartGuid: string | undefined) => void;
57
51
  resetState: () => void;
58
52
  }, {
59
- cartId: number | undefined;
60
53
  cartGuid: string | undefined;
61
54
  } & {
62
- updateCartId: (cartId: number | undefined, cartGuid: string | undefined) => void;
55
+ updateCartGuid: (cartGuid: string | undefined) => void;
63
56
  resetState: () => void;
64
57
  }>>;
65
58
  };
@@ -122,12 +115,6 @@ export declare class SubscriptionBooking extends Booking {
122
115
  * as well as a list of the available tariffs for each trip.
123
116
  */
124
117
  getBuyerPassengersDetails(): Promise<ErrorResponse | GetBuyerPassengersDetailsResponse>;
125
- /**
126
- * @description This method shall be called when the user wants to retrieve information about an esisting buyer.
127
- * @param {GetBuyerRequest} request The object containing the parameters to search the buyer.
128
- * @returns An object of type {@link Buyer} containing the buyer information, or an {@link ErrorResponse} object in case of error.
129
- */
130
- getBuyer(request: GetBuyerRequest): Promise<ErrorResponse | Buyer>;
131
118
  /**
132
119
  * @description This methosd shall be called when the user wants to update the buyer and the passengers information.
133
120
  * @param {EditPassengersDetailsRequest} passengersDetails The object containing the buyer and the passengers information.
@@ -35,8 +35,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
35
35
  });
36
36
  };
37
37
  var __generator = (this && this.__generator) || function (thisArg, body) {
38
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
39
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
38
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
39
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
40
40
  function verb(n) { return function (v) { return step([n, v]); }; }
41
41
  function step(op) {
42
42
  if (f) throw new TypeError("Generator is already executing.");
@@ -99,11 +99,8 @@ var SubscriptionBooking = /** @class */ (function (_super) {
99
99
  resellerId: resellerId,
100
100
  dbType: dbType
101
101
  }) || this;
102
- // Set cartId & cartGuid
103
- var _b = _this.getStorage().getState(), cartId = _b.cartId, cartGuid = _b.cartGuid;
104
- if (cartId && restoreState) {
105
- _this.cartId = cartId;
106
- }
102
+ // Set cartGuid
103
+ var cartGuid = _this.getStorage().getState().cartGuid;
107
104
  if (cartGuid && restoreState) {
108
105
  _this.cartGuid = cartGuid;
109
106
  }
@@ -120,16 +117,15 @@ var SubscriptionBooking = /** @class */ (function (_super) {
120
117
  };
121
118
  SubscriptionBooking.prototype.resetBooking = function () {
122
119
  this.cart = undefined;
123
- this.cartId = undefined;
124
120
  this.cartGuid = undefined;
125
121
  this.bookingStepsToStatus = new Map();
126
122
  this.bookingDueDate = undefined;
127
123
  try {
128
- this.getStorage().getState().updateCartId(undefined, undefined);
124
+ this.getStorage().getState().updateCartGuid(undefined);
129
125
  }
130
126
  catch (e) {
131
127
  if (this.config.ENV !== config_1.MTSEnvs.TEST) {
132
- throw new Error("Error while deleting cartId from storage");
128
+ throw new Error("Error while deleting cartGuid from storage");
133
129
  }
134
130
  console.log(e);
135
131
  }
@@ -145,7 +141,6 @@ var SubscriptionBooking = /** @class */ (function (_super) {
145
141
  cartDueDate.setSeconds(cartDueDate.getSeconds() + cart.bookingDueDateRemainingSeconds);
146
142
  if (cartDueDate > new Date() && !cart.hasIssuedTickets) {
147
143
  _this.cart = cart;
148
- _this.cartId = cart.id;
149
144
  _this.cartGuid = cart.guid;
150
145
  _this.bookingDueDate = cartDueDate; // See Booking class
151
146
  // Update the sellerId. This is particularly important in Linkavel
@@ -338,15 +333,14 @@ var SubscriptionBooking = /** @class */ (function (_super) {
338
333
  return [2 /*return*/, this.callPostApi(url, request).then(function (response) {
339
334
  // Check for errors
340
335
  if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
341
- // If there was an error, reset cartId and remove it from the mts-storage
336
+ // If there was an error, reset cartGuid and remove it from the mts-storage
342
337
  _this.resetBooking();
343
338
  return response;
344
339
  }
345
340
  _this.cart = response.cart;
346
- _this.cartId = response.cart.id;
347
341
  _this.cartGuid = response.cart.guid;
348
- // Save the cartId in the mts-storage
349
- _this.getStorage().getState().updateCartId(response.cart.id, response.cart.guid);
342
+ // Save the cartGuid in the mts-storage
343
+ _this.getStorage().getState().updateCartGuid(response.cart.guid);
350
344
  // Fill the booking process status
351
345
  _this.bookingStepsToStatus = (0, processBookingSteps_1.processBookingSteps)(response.cart.stepsToStatus);
352
346
  var cartDueDate = new Date();
@@ -414,39 +408,6 @@ var SubscriptionBooking = /** @class */ (function (_super) {
414
408
  });
415
409
  });
416
410
  };
417
- /**
418
- * @description This method shall be called when the user wants to retrieve information about an esisting buyer.
419
- * @param {GetBuyerRequest} request The object containing the parameters to search the buyer.
420
- * @returns An object of type {@link Buyer} containing the buyer information, or an {@link ErrorResponse} object in case of error.
421
- */
422
- SubscriptionBooking.prototype.getBuyer = function (request) {
423
- return __awaiter(this, void 0, void 0, function () {
424
- var buyerPassengersDetails, searchParams, url;
425
- var _a;
426
- return __generator(this, function (_b) {
427
- // First check that it is possible to call this API
428
- if (!this.cart) {
429
- throw Error("Cart is not initialized yet");
430
- }
431
- buyerPassengersDetails = this.bookingStepsToStatus.get(booking_1.Booking.BookingSteps.BUYER_PASSENGERS);
432
- if (!buyerPassengersDetails || !buyerPassengersDetails[0]) {
433
- throw Error("The status of the cart does not allow to call this API");
434
- }
435
- if (!request.personId && !request.personCode && !request.phoneNumber) {
436
- throw Error("At least one of the parameters personId, personCode or phoneNumber must be set");
437
- }
438
- searchParams = new URLSearchParams(__assign(__assign(__assign({}, (request.personId && { personId: (_a = request.personId) === null || _a === void 0 ? void 0 : _a.toString() })), (request.personCode && { personCode: request.personCode })), (request.phoneNumber && { phoneNumber: request.phoneNumber })));
439
- url = "".concat(this.config.API_ENDPOINT, "/v3_customers/persons?").concat(searchParams);
440
- return [2 /*return*/, this.callGetApi(url).then(function (response) {
441
- // Check for errors
442
- if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
443
- return response;
444
- }
445
- return response.persons[0];
446
- })];
447
- });
448
- });
449
- };
450
411
  /**
451
412
  * @description This methosd shall be called when the user wants to update the buyer and the passengers information.
452
413
  * @param {EditPassengersDetailsRequest} passengersDetails The object containing the buyer and the passengers information.
@@ -529,7 +490,7 @@ var SubscriptionBooking = /** @class */ (function (_super) {
529
490
  _c.label = 5;
530
491
  case 5:
531
492
  url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/reduction");
532
- return [2 /*return*/, this.callPostApi(url, __assign(__assign({}, request), { cartId: this.cartId, cartGuid: this.cartGuid })).then(function (response) {
493
+ return [2 /*return*/, this.callPostApi(url, __assign(__assign({}, request), { cartGuid: this.cartGuid })).then(function (response) {
533
494
  var _a, _b;
534
495
  if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
535
496
  return response;
@@ -564,7 +525,10 @@ var SubscriptionBooking = /** @class */ (function (_super) {
564
525
  if (!discountsStep || !discountsStep[0]) {
565
526
  throw Error("The status of the cart does not allow to call this API");
566
527
  }
567
- queryParams = new URLSearchParams({ tripId: tripId.toString(), cartId: this.cartId.toString(), cartGuid: this.cartGuid });
528
+ queryParams = new URLSearchParams({
529
+ tripId: tripId.toString(),
530
+ cartGuid: this.cartGuid
531
+ });
568
532
  url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/reduction?").concat(queryParams);
569
533
  return [2 /*return*/, this.callDeleteApi(url).then(function (response) {
570
534
  var _a, _b, _c;
@@ -633,7 +597,7 @@ var SubscriptionBooking = /** @class */ (function (_super) {
633
597
  _c.label = 5;
634
598
  case 5:
635
599
  url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/wallet");
636
- return [2 /*return*/, this.callPostApi(url, { cartId: this.cartId, cartGuid: this.cartGuid }).then(function (response) {
600
+ return [2 /*return*/, this.callPostApi(url, { cartGuid: this.cartGuid }).then(function (response) {
637
601
  var _a, _b;
638
602
  if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
639
603
  return response;
@@ -663,7 +627,9 @@ var SubscriptionBooking = /** @class */ (function (_super) {
663
627
  if ((0, utils_1.isNullOrWhiteSpace)(this.cartGuid)) {
664
628
  throw Error("Cart is not initialized yet");
665
629
  }
666
- queryParams = new URLSearchParams({ cartId: this.cartId.toString(), cartGuid: this.cartGuid });
630
+ queryParams = new URLSearchParams({
631
+ cartGuid: this.cartGuid
632
+ });
667
633
  url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/wallet?").concat(queryParams);
668
634
  return [2 /*return*/, this.callDeleteApi(url).then(function (response) {
669
635
  var _a, _b, _c;
@@ -775,11 +741,10 @@ exports.SubscriptionBooking = SubscriptionBooking;
775
741
  case 3: return [2 /*return*/, booking];
776
742
  case 4:
777
743
  error_1 = _c.sent();
778
- // Check if the error is due to an expired cart. In this case, delete the cartId from the mts-storage
744
+ // Check if the error is due to an expired cart. In this case, delete the cartGuid from the mts-storage
779
745
  // This error can occur when the user refreshes the page and the cart has expired
780
746
  if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(error_1) && error_1.mtsCode === 40053) {
781
- booking.getStorage().getState().updateCartId(undefined, undefined);
782
- booking.cartId = undefined;
747
+ booking.getStorage().getState().updateCartGuid(undefined);
783
748
  booking.cartGuid = undefined;
784
749
  return [2 /*return*/, booking];
785
750
  }
@@ -1,11 +1,11 @@
1
1
  import { ErrorResponse } from "../types/ErrorResponse";
2
2
  import { City } from "../types/common/City";
3
- import { Buyer, GetBuyerPassengersDetailsResponse, GetBuyerRequest } from "../types/common/Person";
3
+ import { PersonDetails, GetBuyerPassengersDetailsResponse } from "../types/common/Person";
4
4
  import { AddReductionRequest } from "../types/common/Reduction";
5
5
  import { TariffType, TermsType } from "../types/common/Tariffs";
6
6
  import { GetTariffsResponse } from "../types/tpl/GetTariffsResponse";
7
- import { SuperArea } from "../types/tpl/SuperArea";
8
- import { TplCart } from "../types/tpl/TplCart";
7
+ import { GetSuperAreasRequest, SuperArea } from "../types/tpl/SuperArea";
8
+ import { CreateTplCartRequest, TplCart } from "../types/tpl/TplCart";
9
9
  import { Booking } from "./booking";
10
10
  export declare class TplBooking extends Booking {
11
11
  private cart?;
@@ -14,54 +14,47 @@ export declare class TplBooking extends Booking {
14
14
  */
15
15
  constructor({ env, subKey, debug, language, sessionId, restoreState, accessToken, sellerId, resellerId, dbType }: Omit<Booking.BookingConfig, "bookingType">);
16
16
  getStorage(): import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<{
17
- cartId: number | undefined;
18
17
  cartGuid: string | undefined;
19
18
  } & {
20
- updateCartId: (cartId: number | undefined, cartGuid: string | undefined) => void;
19
+ updateCartGuid: (cartGuid: string | undefined) => void;
21
20
  resetState: () => void;
22
21
  }>, "persist"> & {
23
22
  persist: {
24
23
  setOptions: (options: Partial<import("zustand/middleware").PersistOptions<{
25
- cartId: number | undefined;
26
24
  cartGuid: string | undefined;
27
25
  } & {
28
- updateCartId: (cartId: number | undefined, cartGuid: string | undefined) => void;
26
+ updateCartGuid: (cartGuid: string | undefined) => void;
29
27
  resetState: () => void;
30
28
  }, {
31
- cartId: number | undefined;
32
29
  cartGuid: string | undefined;
33
30
  } & {
34
- updateCartId: (cartId: number | undefined, cartGuid: string | undefined) => void;
31
+ updateCartGuid: (cartGuid: string | undefined) => void;
35
32
  resetState: () => void;
36
33
  }>>) => void;
37
34
  clearStorage: () => void;
38
35
  rehydrate: () => Promise<void> | void;
39
36
  hasHydrated: () => boolean;
40
37
  onHydrate: (fn: (state: {
41
- cartId: number | undefined;
42
38
  cartGuid: string | undefined;
43
39
  } & {
44
- updateCartId: (cartId: number | undefined, cartGuid: string | undefined) => void;
40
+ updateCartGuid: (cartGuid: string | undefined) => void;
45
41
  resetState: () => void;
46
42
  }) => void) => () => void;
47
43
  onFinishHydration: (fn: (state: {
48
- cartId: number | undefined;
49
44
  cartGuid: string | undefined;
50
45
  } & {
51
- updateCartId: (cartId: number | undefined, cartGuid: string | undefined) => void;
46
+ updateCartGuid: (cartGuid: string | undefined) => void;
52
47
  resetState: () => void;
53
48
  }) => void) => () => void;
54
49
  getOptions: () => Partial<import("zustand/middleware").PersistOptions<{
55
- cartId: number | undefined;
56
50
  cartGuid: string | undefined;
57
51
  } & {
58
- updateCartId: (cartId: number | undefined, cartGuid: string | undefined) => void;
52
+ updateCartGuid: (cartGuid: string | undefined) => void;
59
53
  resetState: () => void;
60
54
  }, {
61
- cartId: number | undefined;
62
55
  cartGuid: string | undefined;
63
56
  } & {
64
- updateCartId: (cartId: number | undefined, cartGuid: string | undefined) => void;
57
+ updateCartGuid: (cartGuid: string | undefined) => void;
65
58
  resetState: () => void;
66
59
  }>>;
67
60
  };
@@ -87,7 +80,7 @@ export declare class TplBooking extends Booking {
87
80
  * the TPL service is available at a certain price.
88
81
  * @returns An array of {@link SuperArea} objects representing the SuperAreas if the call is successful, an {@link ErrorResponse} object otherwise.
89
82
  */
90
- getSuperAreas(cityId: number): Promise<ErrorResponse | SuperArea[]>;
83
+ getSuperAreas(request: GetSuperAreasRequest): Promise<ErrorResponse | SuperArea[]>;
91
84
  /**
92
85
  * This method fetches the list of terms types in a given super area.
93
86
  * @returns An array of {@link TermsType} objects representing the available terms types if the call is successful, an {@link ErrorResponse} object otherwise.
@@ -110,25 +103,14 @@ export declare class TplBooking extends Booking {
110
103
  getTariffs(superAreaId: number, termsTypeId: number | null, onlyTickets: boolean, onlySubscriptions: boolean): Promise<ErrorResponse | GetTariffsResponse>;
111
104
  /**
112
105
  * This method allows to create a TPL cart.
113
- * @param tariffIdToQuantity A map that associates a tariff id (the one chosen by the user) to the number of tickets to buy for that tariff.
114
- * @param currency The currency in which the ticket is priced.
115
- * @param startDate The start date of the ticket. This is optional and should be used only for subscriptions.
116
- * @param isCurrentPeriod Whether the subscription is for the current period. This is optional and should be used only for subscriptions.
117
- * @param renewSubscriptionTicketPNR The PNR of the subscription ticket to renew. This is optional and should be used only for subscriptions.
118
106
  */
119
- createTplCart(tariffIdToQuantity: Map<number, number>, currency: Booking.Currencies, startDate?: string, isCurrentPeriod?: boolean, renewSubscriptionTicketPNR?: string): Promise<ErrorResponse | TplCart>;
107
+ createTplCart(tplCart: CreateTplCartRequest): Promise<ErrorResponse | TplCart>;
120
108
  /**
121
109
  * @description This method shall be called when the user wants to retrieve information about the buyer and the passengers.
122
110
  * @returns An object of type {@link GetBuyerPassengersDetailsResponse} containing the buyer and the passengers information,
123
111
  * as well as a list of the available tariffs for each trip.
124
112
  */
125
113
  getBuyerPassengersDetails(): Promise<ErrorResponse | GetBuyerPassengersDetailsResponse>;
126
- /**
127
- * @description This method shall be called when the user wants to retrieve information about an esisting buyer.
128
- * @param {GetBuyerRequest} request The object containing the parameters to search the buyer.
129
- * @returns An object of type {@link Buyer} containing the buyer information, or an {@link ErrorResponse} object in case of error.
130
- */
131
- getBuyer(request: GetBuyerRequest): Promise<ErrorResponse | Buyer>;
132
114
  /**
133
115
  * @description This method shall be called when the user wants to update the buyer information.
134
116
  * @param buyerDetails The object containing the buyer information.
@@ -137,7 +119,7 @@ export declare class TplBooking extends Booking {
137
119
  * with the subscription. This parameter is required if the cart contains a subscription.
138
120
  * @returns An {@link ErrorResponse} object in case of error, true otherwise.
139
121
  */
140
- updateBuyerPassengersDetails(buyerDetails: Buyer | null, subscriptionPersonCode?: string): Promise<ErrorResponse | boolean>;
122
+ updateBuyerPassengersDetails(buyerDetails: PersonDetails | null, subscriptionPersonCode?: string): Promise<ErrorResponse | boolean>;
141
123
  /**
142
124
  * @description This method allows to add a reduction to the whole cart or to a single trip in the cart.
143
125
  * @param {AddReductionRequest} request The information about the reduction to add