mts-booking-library 2.2.2 → 2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/SubscriptionBooking.d.ts +0 -0
- package/lib/SubscriptionBooking.js +148 -0
- package/lib/booking/booking.d.ts +7 -4
- package/lib/booking/booking.js +7 -11
- package/lib/booking/journeyBooking.d.ts +7 -0
- package/lib/booking/journeyBooking.js +53 -32
- package/lib/booking/serviceBooking.d.ts +7 -0
- package/lib/booking/serviceBooking.js +50 -24
- package/lib/booking/subscriptionBooking.d.ts +2 -1
- package/lib/booking/subscriptionBooking.js +17 -22
- package/lib/booking/tplBooking.d.ts +5 -1
- package/lib/booking/tplBooking.js +49 -27
- package/lib/index.d.ts +1 -0
- package/lib/index.js +0 -3
- package/lib/types/ErrorResponse.d.ts +6 -5
- package/lib/types/common/Cart.d.ts +31 -0
- package/lib/types/tpl/GetTariffsResponse.d.ts +1 -1
- package/lib/utils/apiCall.d.ts +4 -5
- package/lib/utils/apiCall.js +50 -228
- package/lib/utils/testUtils.d.ts +8 -0
- package/lib/utils/testUtils.js +19 -0
- package/package.json +4 -4
@@ -198,7 +198,7 @@ var ServiceBooking = /** @class */ (function (_super) {
|
|
198
198
|
return [2 /*return*/, this.callDeleteApi(url, options).then(function (response) {
|
199
199
|
// Clear all data
|
200
200
|
_this.resetBooking();
|
201
|
-
return
|
201
|
+
return response;
|
202
202
|
})];
|
203
203
|
});
|
204
204
|
});
|
@@ -214,9 +214,7 @@ var ServiceBooking = /** @class */ (function (_super) {
|
|
214
214
|
return __generator(this, function (_a) {
|
215
215
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/services/cities?");
|
216
216
|
return [2 /*return*/, this.callGetApi(url, options).then(function (response) {
|
217
|
-
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
218
|
-
? response
|
219
|
-
: response.cities;
|
217
|
+
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response.cities;
|
220
218
|
})];
|
221
219
|
});
|
222
220
|
});
|
@@ -235,9 +233,7 @@ var ServiceBooking = /** @class */ (function (_super) {
|
|
235
233
|
searchParams = new URLSearchParams(__assign(__assign({}, (cityName && { cityName: cityName })), { currency: currency }));
|
236
234
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/services?").concat(searchParams);
|
237
235
|
return [2 /*return*/, this.callGetApi(url, options).then(function (response) {
|
238
|
-
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
239
|
-
? response
|
240
|
-
: response.services;
|
236
|
+
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response.services;
|
241
237
|
})];
|
242
238
|
});
|
243
239
|
});
|
@@ -257,13 +253,50 @@ var ServiceBooking = /** @class */ (function (_super) {
|
|
257
253
|
searchParams = new URLSearchParams({ serviceId: serviceId.toString(), date: date });
|
258
254
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/services/trips?").concat(searchParams);
|
259
255
|
return [2 /*return*/, this.callGetApi(url, options).then(function (response) {
|
260
|
-
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
261
|
-
? response
|
262
|
-
: response;
|
256
|
+
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response;
|
263
257
|
})];
|
264
258
|
});
|
265
259
|
});
|
266
260
|
};
|
261
|
+
/**
|
262
|
+
* This method creates a service cart for the given parameters.
|
263
|
+
* @returns The created cart
|
264
|
+
*/
|
265
|
+
ServiceBooking.prototype.createCart = function (request, options) {
|
266
|
+
return __awaiter(this, void 0, void 0, function () {
|
267
|
+
var url;
|
268
|
+
var _this = this;
|
269
|
+
return __generator(this, function (_a) {
|
270
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts");
|
271
|
+
return [2 /*return*/, this.callPostApi(url, request, options).then(function (response) { return __awaiter(_this, void 0, void 0, function () {
|
272
|
+
return __generator(this, function (_a) {
|
273
|
+
switch (_a.label) {
|
274
|
+
case 0:
|
275
|
+
// Check for errors
|
276
|
+
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
277
|
+
// If there was an error, reset cartGuid and remove it from the mts-storage
|
278
|
+
this.resetBooking();
|
279
|
+
return [2 /*return*/, response];
|
280
|
+
}
|
281
|
+
// Fetch the newly created cart & update local properties
|
282
|
+
return [4 /*yield*/, this.fetchAndSetCart(response.cartGuid)];
|
283
|
+
case 1:
|
284
|
+
// Fetch the newly created cart & update local properties
|
285
|
+
_a.sent();
|
286
|
+
if (!this.cart) {
|
287
|
+
// Should already be handled, but just in case
|
288
|
+
throw new Error("Could not fetch cart");
|
289
|
+
}
|
290
|
+
// Update storage
|
291
|
+
this.getStorage().getState().updateCartGuid(response.cartGuid);
|
292
|
+
return [2 /*return*/, this.cart];
|
293
|
+
}
|
294
|
+
});
|
295
|
+
}); })];
|
296
|
+
});
|
297
|
+
});
|
298
|
+
};
|
299
|
+
/** @deprecated Use {@link createCart} instead. */
|
267
300
|
ServiceBooking.prototype.createServiceCart = function (serviceCart, options) {
|
268
301
|
return __awaiter(this, void 0, void 0, function () {
|
269
302
|
var url;
|
@@ -336,9 +369,8 @@ var ServiceBooking = /** @class */ (function (_super) {
|
|
336
369
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/details?").concat(searchParams);
|
337
370
|
return [2 /*return*/, this.callGetApi(url).then(function (response) {
|
338
371
|
// Check for errors
|
339
|
-
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
372
|
+
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
340
373
|
return response;
|
341
|
-
}
|
342
374
|
return {
|
343
375
|
buyerDataStatus: response.buyerDataStatus,
|
344
376
|
buyer: response.buyer,
|
@@ -374,9 +406,8 @@ var ServiceBooking = /** @class */ (function (_super) {
|
|
374
406
|
};
|
375
407
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/details");
|
376
408
|
return [2 /*return*/, this.callPostApi(url, request, options).then(function (response) {
|
377
|
-
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
409
|
+
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
378
410
|
return response;
|
379
|
-
}
|
380
411
|
// Update the booking process status
|
381
412
|
_this.bookingStepsToStatus = (0, processBookingSteps_1.processBookingSteps)(response.stepsToStatus);
|
382
413
|
return true;
|
@@ -431,9 +462,8 @@ var ServiceBooking = /** @class */ (function (_super) {
|
|
431
462
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/reduction");
|
432
463
|
return [2 /*return*/, this.callPostApi(url, __assign(__assign({}, request), { cartGuid: this.cartGuid }), options).then(function (response) {
|
433
464
|
var _a, _b;
|
434
|
-
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
465
|
+
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
435
466
|
return response;
|
436
|
-
}
|
437
467
|
var reductionResponse = response;
|
438
468
|
// Update the booking process status
|
439
469
|
_this.bookingStepsToStatus = (0, processBookingSteps_1.processBookingSteps)(reductionResponse.stepsToStatus);
|
@@ -471,9 +501,8 @@ var ServiceBooking = /** @class */ (function (_super) {
|
|
471
501
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/reduction?").concat(queryParams);
|
472
502
|
return [2 /*return*/, this.callDeleteApi(url, options).then(function (response) {
|
473
503
|
var _a, _b, _c;
|
474
|
-
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
504
|
+
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
475
505
|
return response;
|
476
|
-
}
|
477
506
|
var reductionResponse = response;
|
478
507
|
// Update the booking process status
|
479
508
|
_this.bookingStepsToStatus = (0, processBookingSteps_1.processBookingSteps)(reductionResponse.stepsToStatus);
|
@@ -538,9 +567,8 @@ var ServiceBooking = /** @class */ (function (_super) {
|
|
538
567
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/wallet");
|
539
568
|
return [2 /*return*/, this.callPostApi(url, { cartGuid: this.cartGuid }, options).then(function (response) {
|
540
569
|
var _a, _b;
|
541
|
-
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
570
|
+
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
542
571
|
return response;
|
543
|
-
}
|
544
572
|
var reductionResponse = response;
|
545
573
|
// Update the booking process status
|
546
574
|
_this.bookingStepsToStatus = (0, processBookingSteps_1.processBookingSteps)(reductionResponse.stepsToStatus);
|
@@ -572,9 +600,8 @@ var ServiceBooking = /** @class */ (function (_super) {
|
|
572
600
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/wallet?").concat(queryParams);
|
573
601
|
return [2 /*return*/, this.callDeleteApi(url, options).then(function (response) {
|
574
602
|
var _a, _b, _c;
|
575
|
-
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
603
|
+
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
576
604
|
return response;
|
577
|
-
}
|
578
605
|
var reductionResponse = response;
|
579
606
|
// Update the booking process status
|
580
607
|
_this.bookingStepsToStatus = (0, processBookingSteps_1.processBookingSteps)(reductionResponse.stepsToStatus);
|
@@ -632,9 +659,8 @@ var ServiceBooking = /** @class */ (function (_super) {
|
|
632
659
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/voucher");
|
633
660
|
return [2 /*return*/, this.callPostApi(url, { voucherCode: voucherCode, cartGuid: this.cartGuid }, options).then(function (response) {
|
634
661
|
var _a, _b;
|
635
|
-
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
662
|
+
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
636
663
|
return response;
|
637
|
-
}
|
638
664
|
var reductionResponse = response;
|
639
665
|
// Update the booking process status
|
640
666
|
_this.bookingStepsToStatus = (0, processBookingSteps_1.processBookingSteps)(reductionResponse.stepsToStatus);
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { ErrorResponse } from "../types/ErrorResponse";
|
2
|
+
import { CreateUpdateCartRequest } from "../types/common/Cart";
|
2
3
|
import { EditPassengersDetailsRequest, GetBuyerPassengersDetailsResponse } from "../types/common/Person";
|
3
4
|
import { AddReductionRequest } from "../types/common/Reduction";
|
4
5
|
import { GetSubscriptionAvailabilityRequest, GetSubscriptionAvailabilityResponse } from "../types/subscriptions/SubscriptionAvailabilities";
|
@@ -104,9 +105,9 @@ export declare class SubscriptionBooking extends Booking {
|
|
104
105
|
* @returns The availability of the subscription for the given parameters
|
105
106
|
*/
|
106
107
|
getSubscriptionAvailabilities(request: GetSubscriptionAvailabilityRequest, options?: ApiCallOptions): Promise<ErrorResponse | GetSubscriptionAvailabilityResponse>;
|
108
|
+
createCart(request: CreateUpdateCartRequest): Promise<never>;
|
107
109
|
/**
|
108
110
|
* This method creates a subscription cart for the given parameters.
|
109
|
-
* @param request the request object containing the parameters for the availability check
|
110
111
|
* @returns The created cart
|
111
112
|
*/
|
112
113
|
createSubscriptionCart(request: CreateSubscriptionCartRequest, options?: ApiCallOptions): Promise<ErrorResponse | SubscriptionCart>;
|
@@ -197,7 +197,7 @@ var SubscriptionBooking = /** @class */ (function (_super) {
|
|
197
197
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts?").concat(new URLSearchParams({ cartGuid: this.cart.guid }));
|
198
198
|
return [2 /*return*/, this.callDeleteApi(url, options).then(function (response) {
|
199
199
|
_this.resetBooking();
|
200
|
-
return
|
200
|
+
return response;
|
201
201
|
})];
|
202
202
|
});
|
203
203
|
});
|
@@ -212,9 +212,7 @@ var SubscriptionBooking = /** @class */ (function (_super) {
|
|
212
212
|
return __generator(this, function (_a) {
|
213
213
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/subscriptions/departures?");
|
214
214
|
return [2 /*return*/, this.callGetApi(url, options).then(function (response) {
|
215
|
-
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
216
|
-
? response
|
217
|
-
: response.departures;
|
215
|
+
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response.departures;
|
218
216
|
})];
|
219
217
|
});
|
220
218
|
});
|
@@ -231,9 +229,7 @@ var SubscriptionBooking = /** @class */ (function (_super) {
|
|
231
229
|
searchParams = new URLSearchParams({ departureStopName: departureStopName });
|
232
230
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/subscriptions/destinations?").concat(searchParams);
|
233
231
|
return [2 /*return*/, this.callGetApi(url, options).then(function (response) {
|
234
|
-
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
235
|
-
? response
|
236
|
-
: response.destinations;
|
232
|
+
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response.destinations;
|
237
233
|
})];
|
238
234
|
});
|
239
235
|
});
|
@@ -318,9 +314,15 @@ var SubscriptionBooking = /** @class */ (function (_super) {
|
|
318
314
|
});
|
319
315
|
});
|
320
316
|
};
|
317
|
+
SubscriptionBooking.prototype.createCart = function (request) {
|
318
|
+
return __awaiter(this, void 0, void 0, function () {
|
319
|
+
return __generator(this, function (_a) {
|
320
|
+
throw new Error("Method not available for this booking type. Use createSubscriptionCart instead.");
|
321
|
+
});
|
322
|
+
});
|
323
|
+
};
|
321
324
|
/**
|
322
325
|
* This method creates a subscription cart for the given parameters.
|
323
|
-
* @param request the request object containing the parameters for the availability check
|
324
326
|
* @returns The created cart
|
325
327
|
*/
|
326
328
|
SubscriptionBooking.prototype.createSubscriptionCart = function (request, options) {
|
@@ -393,9 +395,8 @@ var SubscriptionBooking = /** @class */ (function (_super) {
|
|
393
395
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/details?").concat(searchParams);
|
394
396
|
return [2 /*return*/, this.callGetApi(url, options).then(function (response) {
|
395
397
|
// Check for errors
|
396
|
-
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
398
|
+
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
397
399
|
return response;
|
398
|
-
}
|
399
400
|
// For each passenger, parse the outbound and return tariffs
|
400
401
|
var passengers = response.passengers;
|
401
402
|
passengers.map(function (passenger) {
|
@@ -455,9 +456,8 @@ var SubscriptionBooking = /** @class */ (function (_super) {
|
|
455
456
|
});
|
456
457
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/details");
|
457
458
|
return [2 /*return*/, this.callPostApi(url, request, options).then(function (response) {
|
458
|
-
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
459
|
+
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
459
460
|
return response;
|
460
|
-
}
|
461
461
|
// Update the booking process status
|
462
462
|
_this.bookingStepsToStatus = (0, processBookingSteps_1.processBookingSteps)(response.stepsToStatus);
|
463
463
|
return true;
|
@@ -511,9 +511,8 @@ var SubscriptionBooking = /** @class */ (function (_super) {
|
|
511
511
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/reduction");
|
512
512
|
return [2 /*return*/, this.callPostApi(url, __assign(__assign({}, request), { cartGuid: this.cartGuid }), options).then(function (response) {
|
513
513
|
var _a, _b;
|
514
|
-
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
514
|
+
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
515
515
|
return response;
|
516
|
-
}
|
517
516
|
var reductionResponse = response;
|
518
517
|
// Update the booking process status
|
519
518
|
_this.bookingStepsToStatus = (0, processBookingSteps_1.processBookingSteps)(reductionResponse.stepsToStatus);
|
@@ -551,9 +550,8 @@ var SubscriptionBooking = /** @class */ (function (_super) {
|
|
551
550
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/reduction?").concat(queryParams);
|
552
551
|
return [2 /*return*/, this.callDeleteApi(url, options).then(function (response) {
|
553
552
|
var _a, _b, _c;
|
554
|
-
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
553
|
+
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
555
554
|
return response;
|
556
|
-
}
|
557
555
|
var reductionResponse = response;
|
558
556
|
// Update the booking process status
|
559
557
|
_this.bookingStepsToStatus = (0, processBookingSteps_1.processBookingSteps)(reductionResponse.stepsToStatus);
|
@@ -618,9 +616,8 @@ var SubscriptionBooking = /** @class */ (function (_super) {
|
|
618
616
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/wallet");
|
619
617
|
return [2 /*return*/, this.callPostApi(url, { cartGuid: this.cartGuid }, options).then(function (response) {
|
620
618
|
var _a, _b;
|
621
|
-
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
619
|
+
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
622
620
|
return response;
|
623
|
-
}
|
624
621
|
var reductionResponse = response;
|
625
622
|
// Update the booking process status
|
626
623
|
_this.bookingStepsToStatus = (0, processBookingSteps_1.processBookingSteps)(reductionResponse.stepsToStatus);
|
@@ -652,9 +649,8 @@ var SubscriptionBooking = /** @class */ (function (_super) {
|
|
652
649
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/wallet?").concat(queryParams);
|
653
650
|
return [2 /*return*/, this.callDeleteApi(url, options).then(function (response) {
|
654
651
|
var _a, _b, _c;
|
655
|
-
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
652
|
+
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
656
653
|
return response;
|
657
|
-
}
|
658
654
|
var reductionResponse = response;
|
659
655
|
// Update the booking process status
|
660
656
|
_this.bookingStepsToStatus = (0, processBookingSteps_1.processBookingSteps)(reductionResponse.stepsToStatus);
|
@@ -712,9 +708,8 @@ var SubscriptionBooking = /** @class */ (function (_super) {
|
|
712
708
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/voucher");
|
713
709
|
return [2 /*return*/, this.callPostApi(url, { voucherCode: voucherCode, cartGuid: this.cartGuid }, options).then(function (response) {
|
714
710
|
var _a, _b;
|
715
|
-
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
711
|
+
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
716
712
|
return response;
|
717
|
-
}
|
718
713
|
var reductionResponse = response;
|
719
714
|
// Update the booking process status
|
720
715
|
_this.bookingStepsToStatus = (0, processBookingSteps_1.processBookingSteps)(reductionResponse.stepsToStatus);
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { ErrorResponse } from "../types/ErrorResponse";
|
2
|
+
import { CreateUpdateCartRequest } from "../types/common/Cart";
|
2
3
|
import { City } from "../types/common/City";
|
3
4
|
import { PersonDetails, GetBuyerPassengersDetailsResponse } from "../types/common/Person";
|
4
5
|
import { AddReductionRequest } from "../types/common/Reduction";
|
@@ -103,8 +104,11 @@ export declare class TplBooking extends Booking {
|
|
103
104
|
*/
|
104
105
|
getTariffs(superAreaId: number, termsTypeId: number | null, onlyTickets: boolean, onlySubscriptions: boolean, options?: ApiCallOptions): Promise<ErrorResponse | GetTariffsResponse>;
|
105
106
|
/**
|
106
|
-
* This method
|
107
|
+
* This method creates a tpl cart for the given parameters.
|
108
|
+
* @returns The created cart
|
107
109
|
*/
|
110
|
+
createCart(request: CreateUpdateCartRequest, options?: ApiCallOptions): Promise<ErrorResponse | TplCart>;
|
111
|
+
/** @deprecated Use {@link createCart} instead. */
|
108
112
|
createTplCart(tplCart: CreateTplCartRequest, options?: ApiCallOptions): Promise<ErrorResponse | TplCart>;
|
109
113
|
/**
|
110
114
|
* @description This method shall be called when the user wants to retrieve information about the buyer and the passengers.
|
@@ -198,7 +198,7 @@ var TplBooking = /** @class */ (function (_super) {
|
|
198
198
|
return [2 /*return*/, this.callDeleteApi(url, options).then(function (response) {
|
199
199
|
// Clear all data
|
200
200
|
_this.resetBooking();
|
201
|
-
return
|
201
|
+
return response;
|
202
202
|
})];
|
203
203
|
});
|
204
204
|
});
|
@@ -214,9 +214,7 @@ var TplBooking = /** @class */ (function (_super) {
|
|
214
214
|
return __generator(this, function (_a) {
|
215
215
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/tpl/cities?");
|
216
216
|
return [2 /*return*/, this.callGetApi(url, options).then(function (response) {
|
217
|
-
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
218
|
-
? response
|
219
|
-
: response.cities;
|
217
|
+
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response.cities;
|
220
218
|
})];
|
221
219
|
});
|
222
220
|
});
|
@@ -233,9 +231,7 @@ var TplBooking = /** @class */ (function (_super) {
|
|
233
231
|
searchParams = new URLSearchParams(__assign(__assign({ includeBasicInfo: "true", includeAreaIds: "false", includeTariffIds: "false", includeRouteIds: "false" }, (request.cityId && { cityId: request.cityId.toString() })), (request.tripId && { tripId: request.tripId.toString() })));
|
234
232
|
url = "".concat(this.config.API_ENDPOINT, "/v3_resources/superAreas?").concat(searchParams);
|
235
233
|
return [2 /*return*/, this.callGetApi(url, options).then(function (response) {
|
236
|
-
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
237
|
-
? response
|
238
|
-
: response.superAreas;
|
234
|
+
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response.superAreas;
|
239
235
|
})];
|
240
236
|
});
|
241
237
|
});
|
@@ -267,9 +263,7 @@ var TplBooking = /** @class */ (function (_super) {
|
|
267
263
|
searchParams = new URLSearchParams({ superAreaId: superAreaId.toString() });
|
268
264
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/tpl/tariffTypesBySuperArea?").concat(searchParams);
|
269
265
|
return [2 /*return*/, this.callGetApi(url, options).then(function (response) {
|
270
|
-
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
|
271
|
-
? response
|
272
|
-
: response.tariffTypes;
|
266
|
+
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response.tariffTypes;
|
273
267
|
})];
|
274
268
|
});
|
275
269
|
});
|
@@ -292,9 +286,8 @@ var TplBooking = /** @class */ (function (_super) {
|
|
292
286
|
// Call the API
|
293
287
|
return [2 /*return*/, this.callGetApi(url, options).then(function (response) {
|
294
288
|
// Check for error
|
295
|
-
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
289
|
+
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
296
290
|
return response;
|
297
|
-
}
|
298
291
|
// Convert the dictionary in the response and return the the correct object
|
299
292
|
var tariffPlanToTariffs = new Map(Object.entries(response.tariffPlanToTariffs).map(function (_a) {
|
300
293
|
var tariffPlanId = _a[0], tariffs = _a[1];
|
@@ -312,8 +305,44 @@ var TplBooking = /** @class */ (function (_super) {
|
|
312
305
|
});
|
313
306
|
};
|
314
307
|
/**
|
315
|
-
* This method
|
308
|
+
* This method creates a tpl cart for the given parameters.
|
309
|
+
* @returns The created cart
|
316
310
|
*/
|
311
|
+
TplBooking.prototype.createCart = function (request, options) {
|
312
|
+
return __awaiter(this, void 0, void 0, function () {
|
313
|
+
var url;
|
314
|
+
var _this = this;
|
315
|
+
return __generator(this, function (_a) {
|
316
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts");
|
317
|
+
return [2 /*return*/, this.callPostApi(url, request, options).then(function (response) { return __awaiter(_this, void 0, void 0, function () {
|
318
|
+
return __generator(this, function (_a) {
|
319
|
+
switch (_a.label) {
|
320
|
+
case 0:
|
321
|
+
// Check for errors
|
322
|
+
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
323
|
+
// If there was an error, reset cartGuid and remove it from the mts-storage
|
324
|
+
this.resetBooking();
|
325
|
+
return [2 /*return*/, response];
|
326
|
+
}
|
327
|
+
// Fetch the newly created cart & update local properties
|
328
|
+
return [4 /*yield*/, this.fetchAndSetCart(response.cartGuid)];
|
329
|
+
case 1:
|
330
|
+
// Fetch the newly created cart & update local properties
|
331
|
+
_a.sent();
|
332
|
+
if (!this.cart) {
|
333
|
+
// Should already be handled, but just in case
|
334
|
+
throw new Error("Could not fetch cart");
|
335
|
+
}
|
336
|
+
// Update storage
|
337
|
+
this.getStorage().getState().updateCartGuid(response.cartGuid);
|
338
|
+
return [2 /*return*/, this.cart];
|
339
|
+
}
|
340
|
+
});
|
341
|
+
}); })];
|
342
|
+
});
|
343
|
+
});
|
344
|
+
};
|
345
|
+
/** @deprecated Use {@link createCart} instead. */
|
317
346
|
TplBooking.prototype.createTplCart = function (tplCart, options) {
|
318
347
|
return __awaiter(this, void 0, void 0, function () {
|
319
348
|
var url, processedTariffIdToQuantity, request;
|
@@ -393,9 +422,8 @@ var TplBooking = /** @class */ (function (_super) {
|
|
393
422
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/details?").concat(searchParams);
|
394
423
|
return [2 /*return*/, this.callGetApi(url, options).then(function (response) {
|
395
424
|
// Check for errors
|
396
|
-
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
425
|
+
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
397
426
|
return response;
|
398
|
-
}
|
399
427
|
return {
|
400
428
|
buyerDataStatus: response.buyerDataStatus,
|
401
429
|
buyer: response.buyer,
|
@@ -443,9 +471,8 @@ var TplBooking = /** @class */ (function (_super) {
|
|
443
471
|
};
|
444
472
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/details");
|
445
473
|
return [2 /*return*/, this.callPostApi(url, request, options).then(function (response) {
|
446
|
-
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
474
|
+
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
447
475
|
return response;
|
448
|
-
}
|
449
476
|
// Update the booking process status
|
450
477
|
_this.bookingStepsToStatus = (0, processBookingSteps_1.processBookingSteps)(response.stepsToStatus);
|
451
478
|
return true;
|
@@ -500,9 +527,8 @@ var TplBooking = /** @class */ (function (_super) {
|
|
500
527
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/reduction");
|
501
528
|
return [2 /*return*/, this.callPostApi(url, __assign(__assign({}, request), { cartGuid: this.cartGuid }), options).then(function (response) {
|
502
529
|
var _a, _b;
|
503
|
-
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
530
|
+
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
504
531
|
return response;
|
505
|
-
}
|
506
532
|
var reductionResponse = response;
|
507
533
|
// Update the booking process status
|
508
534
|
_this.bookingStepsToStatus = (0, processBookingSteps_1.processBookingSteps)(reductionResponse.stepsToStatus);
|
@@ -540,9 +566,8 @@ var TplBooking = /** @class */ (function (_super) {
|
|
540
566
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/reduction?").concat(queryParams);
|
541
567
|
return [2 /*return*/, this.callDeleteApi(url, options).then(function (response) {
|
542
568
|
var _a, _b, _c;
|
543
|
-
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
569
|
+
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
544
570
|
return response;
|
545
|
-
}
|
546
571
|
var reductionResponse = response;
|
547
572
|
// Update the booking process status
|
548
573
|
_this.bookingStepsToStatus = (0, processBookingSteps_1.processBookingSteps)(reductionResponse.stepsToStatus);
|
@@ -607,9 +632,8 @@ var TplBooking = /** @class */ (function (_super) {
|
|
607
632
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/wallet");
|
608
633
|
return [2 /*return*/, this.callPostApi(url, { cartGuid: this.cartGuid }, options).then(function (response) {
|
609
634
|
var _a, _b;
|
610
|
-
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
635
|
+
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
611
636
|
return response;
|
612
|
-
}
|
613
637
|
var reductionResponse = response;
|
614
638
|
// Update the booking process status
|
615
639
|
_this.bookingStepsToStatus = (0, processBookingSteps_1.processBookingSteps)(reductionResponse.stepsToStatus);
|
@@ -641,9 +665,8 @@ var TplBooking = /** @class */ (function (_super) {
|
|
641
665
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/wallet?").concat(queryParams);
|
642
666
|
return [2 /*return*/, this.callDeleteApi(url, options).then(function (response) {
|
643
667
|
var _a, _b, _c;
|
644
|
-
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
668
|
+
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
645
669
|
return response;
|
646
|
-
}
|
647
670
|
var reductionResponse = response;
|
648
671
|
// Update the booking process status
|
649
672
|
_this.bookingStepsToStatus = (0, processBookingSteps_1.processBookingSteps)(reductionResponse.stepsToStatus);
|
@@ -701,9 +724,8 @@ var TplBooking = /** @class */ (function (_super) {
|
|
701
724
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/voucher");
|
702
725
|
return [2 /*return*/, this.callPostApi(url, { voucherCode: voucherCode, cartGuid: this.cartGuid }, options).then(function (response) {
|
703
726
|
var _a, _b;
|
704
|
-
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
727
|
+
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response))
|
705
728
|
return response;
|
706
|
-
}
|
707
729
|
var reductionResponse = response;
|
708
730
|
// Update the booking process status
|
709
731
|
_this.bookingStepsToStatus = (0, processBookingSteps_1.processBookingSteps)(reductionResponse.stepsToStatus);
|
package/lib/index.d.ts
CHANGED
@@ -4,6 +4,7 @@ export { ServiceBooking } from "./booking/serviceBooking";
|
|
4
4
|
export { SubscriptionBooking } from "./booking/subscriptionBooking";
|
5
5
|
export { TplBooking } from "./booking/tplBooking";
|
6
6
|
export { useMtsBookingState } from "./mtsStorage";
|
7
|
+
export { CreateUpdateCartRequest, CartBooking } from "./types/common/Cart";
|
7
8
|
export { Person, PersonDetails, DEFAULT_PERSON, initializePerson } from "./types/common/Person";
|
8
9
|
export { GetBuyerPassengersDetailsResponse, GetPersonRequest, GetPassenger, BuyerDataStatus, EditPassengerRequestType, EditPassengersDetailsRequest } from "./types/common/Person";
|
9
10
|
export { Tariff, TariffsMatrix, TariffSummary, TariffType, TermsType, PassengerTariff, ExtraTariff } from "./types/common/Tariffs";
|
package/lib/index.js
CHANGED
@@ -16,9 +16,6 @@ Object.defineProperty(exports, "TplBooking", { enumerable: true, get: function (
|
|
16
16
|
//#region Export Zustand states
|
17
17
|
var mtsStorage_1 = require("./mtsStorage");
|
18
18
|
Object.defineProperty(exports, "useMtsBookingState", { enumerable: true, get: function () { return mtsStorage_1.useMtsBookingState; } });
|
19
|
-
//#endregion
|
20
|
-
//#region Export common types
|
21
|
-
// @note: Cart is not exported because it is extended by other types
|
22
19
|
var Person_1 = require("./types/common/Person");
|
23
20
|
Object.defineProperty(exports, "DEFAULT_PERSON", { enumerable: true, get: function () { return Person_1.DEFAULT_PERSON; } });
|
24
21
|
Object.defineProperty(exports, "initializePerson", { enumerable: true, get: function () { return Person_1.initializePerson; } });
|
@@ -1,13 +1,14 @@
|
|
1
1
|
/**
|
2
|
-
*
|
3
|
-
*
|
4
|
-
* @property {number} httpStatus - The http status code of the error (e.g. 400)
|
5
|
-
* @property {number} mtsCode - The error code returned by the MTS Backend (e.g. 4001)
|
6
|
-
* @property {string} message - The message of the error (e.g. "Invalid parameters")
|
2
|
+
* Error response type as returned by the BackEnd
|
7
3
|
*/
|
8
4
|
export type ErrorResponse = {
|
5
|
+
/** The http status code of the error (e.g. 400) */
|
9
6
|
httpStatus: number;
|
7
|
+
/** The error code returned by the MTS Backend (e.g. 4001) */
|
10
8
|
mtsCode: number;
|
9
|
+
/** The message of the error (e.g. "Invalid parameters") */
|
11
10
|
message: string;
|
11
|
+
/** Whether this is a 403 error generate by Azure, and should be treated like a maintenance error (so, like a 503) */
|
12
|
+
isAzureMaintenance?: boolean;
|
12
13
|
};
|
13
14
|
export declare const objectIsMTSErrorResponse: (error: any) => error is ErrorResponse;
|
@@ -7,6 +7,37 @@ export declare enum SellingMethod {
|
|
7
7
|
RESELLER = "RESELLER",
|
8
8
|
MTSAPP = "MTSAPP"
|
9
9
|
}
|
10
|
+
export type CreateUpdateCartRequest = {
|
11
|
+
/** The unique identifier for the cart.
|
12
|
+
* This should be passed during the change process to link the new ticket to the already existing change cart */
|
13
|
+
cartGuid?: string;
|
14
|
+
/** The currency of the cart. See {@link Booking.Currencies} */
|
15
|
+
currency: Booking.Currencies;
|
16
|
+
/** The booking to be added to the cart. */
|
17
|
+
cartBooking: CartBooking;
|
18
|
+
/** The return booking to be added to the cart (e.g. for MLP). */
|
19
|
+
returnCartBooking?: CartBooking;
|
20
|
+
};
|
21
|
+
export type CartBooking = {
|
22
|
+
/** A record containing tariff ids as keys and their respective quantities as values. */
|
23
|
+
tariffIdToQuantity?: Record<number, number>;
|
24
|
+
/** The date of the booking in ISO string format (optional). */
|
25
|
+
date?: string;
|
26
|
+
/** The id of the trip, if necessary. For example, this is used by services that require a specific trip to be selected, or by MLP booking */
|
27
|
+
tripId?: number;
|
28
|
+
/** The id of the line, if necessary. For example, this is used by Services */
|
29
|
+
lineId?: number;
|
30
|
+
/** The start date of the booking, if necessary. For example, this is used by TPL subscriptions. */
|
31
|
+
startDate?: string;
|
32
|
+
/** If true, then the booking will be the current period (e.g. this month or this year), otherwise it will be the next period. */
|
33
|
+
isCurrentPeriod?: boolean;
|
34
|
+
/** The PNR of the ticket of reference, if necessary. For example, this is used in TPL when renewing a subscription. */
|
35
|
+
pnr?: string;
|
36
|
+
/** The id of the OTA Reseller that sold the ticket */
|
37
|
+
otaResellerId?: number;
|
38
|
+
/** A string in base64 representing the picture of the ticket that was sold */
|
39
|
+
otaTicketPicture?: string;
|
40
|
+
};
|
10
41
|
/**
|
11
42
|
* @description Cart is the object returned by the API when a cart is created.
|
12
43
|
* Note that depending on the type of booking, this type will be extended with different fields:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { Tariff } from "../common/Tariffs";
|
2
2
|
/**
|
3
|
-
* This represents the response of the API {@link TplBooking.getTariffs}.
|
3
|
+
* This represents the response of the API {@link TplBooking.getTariffs()}.
|
4
4
|
* @param {Tariff[]} tariffs - The list of available tariffs. This is meant to be a fast access for displaying the data.
|
5
5
|
* In particular, this array is equivalent to `tariffPlanToTariffs[0]`
|
6
6
|
* @param {Map<number, Tariff[]>} tariffPlanToTariffs - A map that associates a tariff plan to the list of tariffs available for that tariff plan.
|
package/lib/utils/apiCall.d.ts
CHANGED
@@ -6,12 +6,11 @@
|
|
6
6
|
* @method makeDelete - Makes a DELETE request to the MTS API
|
7
7
|
*/
|
8
8
|
import { GenericAbortSignal } from "axios";
|
9
|
-
import { ErrorResponse } from "../types/ErrorResponse";
|
10
9
|
export interface ApiCallOptions {
|
11
10
|
/** An abort signal to be passed to Axios, in case you want to cancel the request */
|
12
11
|
signal?: GenericAbortSignal;
|
13
12
|
}
|
14
|
-
export declare const makeGet: (url: string, options?: ApiCallOptions) => Promise<
|
15
|
-
export declare const makePost: (url: string, data: any, options?: ApiCallOptions) => Promise<
|
16
|
-
export declare const makePut: (url: string, data: any, options?: ApiCallOptions) => Promise<
|
17
|
-
export declare const makeDelete: (url: string, options?: ApiCallOptions) => Promise<
|
13
|
+
export declare const makeGet: (url: string, options?: ApiCallOptions) => Promise<any>;
|
14
|
+
export declare const makePost: (url: string, data: any, options?: ApiCallOptions) => Promise<any>;
|
15
|
+
export declare const makePut: (url: string, data: any, options?: ApiCallOptions) => Promise<any>;
|
16
|
+
export declare const makeDelete: (url: string, options?: ApiCallOptions) => Promise<any>;
|