mts-booking-library 1.3.1 → 1.3.2
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/booking/booking.d.ts +0 -1
- package/lib/booking/booking.js +17 -19
- package/lib/booking/journeyBooking.js +13 -13
- package/lib/booking/serviceBooking.d.ts +3 -3
- package/lib/booking/serviceBooking.js +12 -12
- package/lib/booking/subscriptionBooking.js +10 -10
- package/lib/booking/tplBooking.js +10 -10
- package/lib/types/services/Service.d.ts +10 -0
- package/lib/types/services/ServiceCart.d.ts +2 -2
- package/lib/utils/utils.d.ts +14 -0
- package/lib/utils/utils.js +26 -0
- package/package.json +3 -2
package/lib/booking/booking.d.ts
CHANGED
@@ -51,7 +51,6 @@ export declare abstract class Booking {
|
|
51
51
|
getBookingStepsToStatus(): Map<string, boolean[]>;
|
52
52
|
changeCurrency(currency: Booking.Currencies): void;
|
53
53
|
changeLanguage(language: string): void;
|
54
|
-
getCartExpirationTimeInMs(): Promise<number>;
|
55
54
|
/**
|
56
55
|
* This API allows to mark a non-required booking step as completed. It is useful for example for the seats selection step.
|
57
56
|
* @param bookingStep The booking step to mark as completed
|
package/lib/booking/booking.js
CHANGED
@@ -104,22 +104,33 @@ var Booking = /** @class */ (function () {
|
|
104
104
|
(0, config_1.setConfig)(this.config.ENV, this.config.OCP_SUBSCRIPTION_KEY, this.config.DEBUG, access_token);
|
105
105
|
};
|
106
106
|
Booking.prototype.callGetApi = function (url) {
|
107
|
+
var _a, _b, _c, _d;
|
107
108
|
// Add sellerId, resellerId and language to the query string.
|
108
109
|
// If the last character of the url is a question mark (meaning that the query string is empty), don't add the "&" character.
|
109
110
|
// Otherwise, add it (as we are adding some parameters to the query string)
|
110
|
-
var completeUrl = "".concat(url).concat(url.slice(-1) === "?" ? "" : "&").concat(new URLSearchParams(
|
111
|
+
var completeUrl = "".concat(url).concat(url.slice(-1) === "?" ? "" : "&").concat(new URLSearchParams({
|
112
|
+
sellerId: (_b = (_a = this.sellerId) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : "0",
|
113
|
+
resellerId: (_d = (_c = this.resellerId) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : "0",
|
114
|
+
language: this.language
|
115
|
+
}));
|
111
116
|
return (0, apiCall_1.makeGet)(completeUrl);
|
112
117
|
};
|
113
118
|
Booking.prototype.callPostApi = function (url, body) {
|
119
|
+
var _a, _b, _c, _d;
|
114
120
|
// Add sellerId, resellerId and language to the query string
|
115
|
-
var completeBody = __assign(__assign(
|
121
|
+
var completeBody = __assign(__assign({}, body), { sellerId: (_b = (_a = this.sellerId) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : 0, resellerId: (_d = (_c = this.resellerId) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : 0, language: this.language });
|
116
122
|
return (0, apiCall_1.makePost)(url, completeBody);
|
117
123
|
};
|
118
124
|
Booking.prototype.callDeleteApi = function (url) {
|
125
|
+
var _a, _b, _c, _d;
|
119
126
|
// Add sellerId, resellerId and language to the query string.
|
120
127
|
// If the last character of the url is a question mark (meaning that the query string is empty), don't add the "&" character.
|
121
128
|
// Otherwise, add it (as we are adding some parameters to the query string)
|
122
|
-
var completeUrl = "".concat(url).concat(url.slice(-1) === "?" ? "" : "&").concat(new URLSearchParams(
|
129
|
+
var completeUrl = "".concat(url).concat(url.slice(-1) === "?" ? "" : "&").concat(new URLSearchParams({
|
130
|
+
sellerId: (_b = (_a = this.sellerId) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : "0",
|
131
|
+
resellerId: (_d = (_c = this.resellerId) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : "0",
|
132
|
+
language: this.language
|
133
|
+
}));
|
123
134
|
return (0, apiCall_1.makeDelete)(completeUrl);
|
124
135
|
};
|
125
136
|
Booking.prototype.getBookingStepsToStatus = function () {
|
@@ -138,19 +149,6 @@ var Booking = /** @class */ (function () {
|
|
138
149
|
this.language = Booking.Languages.EN;
|
139
150
|
}
|
140
151
|
};
|
141
|
-
Booking.prototype.getCartExpirationTimeInMs = function () {
|
142
|
-
return __awaiter(this, void 0, void 0, function () {
|
143
|
-
return __generator(this, function (_a) {
|
144
|
-
// If cart is initialized, return the time in ms until the cart expires.
|
145
|
-
// Note that bookingDueDate is initialized only when the cart is created.
|
146
|
-
if (this.bookingDueDate) {
|
147
|
-
return [2 /*return*/, (new Date(this.bookingDueDate).valueOf() - new Date().valueOf())];
|
148
|
-
}
|
149
|
-
// Cart is not initialized
|
150
|
-
throw Error("Cart is not initialized yet");
|
151
|
-
});
|
152
|
-
});
|
153
|
-
};
|
154
152
|
/**
|
155
153
|
* This API allows to mark a non-required booking step as completed. It is useful for example for the seats selection step.
|
156
154
|
* @param bookingStep The booking step to mark as completed
|
@@ -176,7 +174,7 @@ var Booking = /** @class */ (function () {
|
|
176
174
|
// Booking step is already completed, no need to call the API
|
177
175
|
if (currentStepStatus[0])
|
178
176
|
return [2 /*return*/, true];
|
179
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
177
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cartId, "/bookingSteps");
|
180
178
|
return [2 /*return*/, this.callPostApi(url, { bookingStep: bookingStep }).then(function (response) {
|
181
179
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
182
180
|
return response;
|
@@ -259,7 +257,7 @@ var Booking = /** @class */ (function () {
|
|
259
257
|
throw Error("The status of the cart does not allow to call this API");
|
260
258
|
}
|
261
259
|
searchParams = new URLSearchParams(__assign({ gatewayId: gatewayId.toString() }, (returnUrl && { returnUrl: returnUrl })));
|
262
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
260
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cartId, "/payment?").concat(searchParams);
|
263
261
|
return [2 /*return*/, this.callGetApi(url).then(function (response) {
|
264
262
|
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response;
|
265
263
|
})];
|
@@ -324,7 +322,7 @@ var Booking = /** @class */ (function () {
|
|
324
322
|
}
|
325
323
|
_c.label = 7;
|
326
324
|
case 7:
|
327
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
325
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cartId, "/issue");
|
328
326
|
body = {
|
329
327
|
cartId: this.cartId,
|
330
328
|
paymentMethod: paymentMethodToSet === Payment_1.PaymentMethods.PAY_LATER ? null : paymentMethodToSet,
|
@@ -161,7 +161,7 @@ var JourneyBooking = /** @class */ (function (_super) {
|
|
161
161
|
var url;
|
162
162
|
var _this = this;
|
163
163
|
return __generator(this, function (_a) {
|
164
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
164
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts?").concat(new URLSearchParams({ cartId: cartId.toString() }));
|
165
165
|
return [2 /*return*/, this.callGetApi(url).then(function (response) {
|
166
166
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
167
167
|
_this.resetBooking();
|
@@ -258,7 +258,7 @@ var JourneyBooking = /** @class */ (function (_super) {
|
|
258
258
|
var url, request;
|
259
259
|
var _this = this;
|
260
260
|
return __generator(this, function (_a) {
|
261
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/journeys/
|
261
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/journeys/carts");
|
262
262
|
request = __assign(__assign({}, journeyCart), (this.cartId && { cartId: this.cartId.toString() }));
|
263
263
|
return [2 /*return*/, this.callPostApi(url, request).then(function (response) {
|
264
264
|
// Check for errors
|
@@ -298,7 +298,7 @@ var JourneyBooking = /** @class */ (function (_super) {
|
|
298
298
|
if (!buyerPassengersDetails || !buyerPassengersDetails[0]) {
|
299
299
|
throw Error("The status of the cart does not allow to call this API");
|
300
300
|
}
|
301
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
301
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cart.id, "/details?");
|
302
302
|
return [2 /*return*/, this.callGetApi(url).then(function (response) {
|
303
303
|
// Check for errors
|
304
304
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -394,7 +394,7 @@ var JourneyBooking = /** @class */ (function (_super) {
|
|
394
394
|
});
|
395
395
|
request.passengers[passengerIndex].tripsToTariffs = tripsToTariffsToJson;
|
396
396
|
});
|
397
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
397
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cart.id, "/details");
|
398
398
|
return [2 /*return*/, this.callPostApi(url, request).then(function (response) {
|
399
399
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
400
400
|
return response;
|
@@ -455,7 +455,7 @@ var JourneyBooking = /** @class */ (function (_super) {
|
|
455
455
|
throw Error("The status of the cart does not allow to call this API");
|
456
456
|
}
|
457
457
|
searchParams = new URLSearchParams({ tripId: tripId.toString() });
|
458
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
458
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cart.id, "/seats?").concat(searchParams);
|
459
459
|
return [2 /*return*/, this.callGetApi(url).then(function (response) {
|
460
460
|
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response.assignedSeats;
|
461
461
|
})];
|
@@ -481,7 +481,7 @@ var JourneyBooking = /** @class */ (function (_super) {
|
|
481
481
|
if (!seatSelectionStatus || !seatSelectionStatus[0]) {
|
482
482
|
throw Error("The status of the cart does not allow to call this API");
|
483
483
|
}
|
484
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
484
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cart.id, "/seats");
|
485
485
|
return [2 /*return*/, this.callPostApi(url, { tripId: tripId, newSeatsIds: newSeatsIds }).then(function (response) {
|
486
486
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
487
487
|
return response;
|
@@ -508,7 +508,7 @@ var JourneyBooking = /** @class */ (function (_super) {
|
|
508
508
|
if (!this.cart) {
|
509
509
|
throw Error("Cart is not initialized yet");
|
510
510
|
}
|
511
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
511
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cart.id, "/payment/reduction/trips?");
|
512
512
|
return [2 /*return*/, this.callGetApi(url).then(function (response) {
|
513
513
|
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response.trips;
|
514
514
|
})];
|
@@ -557,7 +557,7 @@ var JourneyBooking = /** @class */ (function (_super) {
|
|
557
557
|
}
|
558
558
|
_c.label = 5;
|
559
559
|
case 5:
|
560
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
560
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cartId, "/payment/reduction");
|
561
561
|
return [2 /*return*/, this.callPostApi(url, request).then(function (response) {
|
562
562
|
var _a, _b;
|
563
563
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -594,7 +594,7 @@ var JourneyBooking = /** @class */ (function (_super) {
|
|
594
594
|
throw Error("The status of the cart does not allow to call this API");
|
595
595
|
}
|
596
596
|
queryParams = new URLSearchParams({ tripId: tripId.toString() });
|
597
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
597
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cartId, "/payment/reduction?").concat(queryParams);
|
598
598
|
return [2 /*return*/, this.callDeleteApi(url).then(function (response) {
|
599
599
|
var _a, _b, _c;
|
600
600
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -651,11 +651,11 @@ var JourneyBooking = /** @class */ (function (_super) {
|
|
651
651
|
// Check again if the discounts step is accessible
|
652
652
|
issueStep = this.bookingStepsToStatus.get(booking_1.Booking.BookingSteps.ISSUE);
|
653
653
|
if (!issueStep || !issueStep[0]) {
|
654
|
-
throw Error("The status of the cart does not allow to call the API: booking/
|
654
|
+
throw Error("The status of the cart does not allow to call the API: booking/carts/".concat(this.cartId, "/payment/wallet"));
|
655
655
|
}
|
656
656
|
_c.label = 5;
|
657
657
|
case 5:
|
658
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
658
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cartId, "/payment/wallet");
|
659
659
|
return [2 /*return*/, this.callPostApi(url, {}).then(function (response) {
|
660
660
|
var _a, _b;
|
661
661
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -686,7 +686,7 @@ var JourneyBooking = /** @class */ (function (_super) {
|
|
686
686
|
if (!this.cartId || this.cartId === 0) {
|
687
687
|
throw Error("Cart is not initialized yet");
|
688
688
|
}
|
689
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
689
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cartId, "/payment/wallet");
|
690
690
|
return [2 /*return*/, this.callDeleteApi(url).then(function (response) {
|
691
691
|
var _a, _b, _c;
|
692
692
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -746,7 +746,7 @@ var JourneyBooking = /** @class */ (function (_super) {
|
|
746
746
|
}
|
747
747
|
_c.label = 5;
|
748
748
|
case 5:
|
749
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
749
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cartId, "/payment/voucher");
|
750
750
|
return [2 /*return*/, this.callPostApi(url, { voucherCode: voucherCode }).then(function (response) {
|
751
751
|
var _a, _b;
|
752
752
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -2,7 +2,7 @@ import { MTSEnvs } from "../config";
|
|
2
2
|
import { ErrorResponse } from "../types/ErrorResponse";
|
3
3
|
import { GetBuyerPassengersDetailsResponse, Person } from "../types/common/Person";
|
4
4
|
import { AddReductionRequest } from "../types/common/Reduction";
|
5
|
-
import { Service,
|
5
|
+
import { Service, ServiceTripsResponse } from "../types/services/Service";
|
6
6
|
import { CreateServiceCartRequest, ServiceCart } from "../types/services/ServiceCart";
|
7
7
|
import { Booking } from "./booking";
|
8
8
|
export declare class ServiceBooking extends Booking {
|
@@ -94,9 +94,9 @@ export declare class ServiceBooking extends Booking {
|
|
94
94
|
* You should call this method only if {@link Service.isDateOptional} or {@link Service.isDateRequired} is true for the selected tour.
|
95
95
|
* @param {number} serviceId The id of the selected tour (can be retrieved in the object {@link Service} returned by {@link getTours})
|
96
96
|
* @param {string} date The date on which to get the tours, in ISO string format
|
97
|
-
* @returns {
|
97
|
+
* @returns {ServiceTripsResponse} The returned information about the tour (tripId and hour)
|
98
98
|
*/
|
99
|
-
getServiceTrips(serviceId: number, date: string): Promise<ErrorResponse |
|
99
|
+
getServiceTrips(serviceId: number, date: string): Promise<ErrorResponse | ServiceTripsResponse>;
|
100
100
|
createServiceCart(serviceCart: CreateServiceCartRequest): Promise<ErrorResponse | ServiceCart>;
|
101
101
|
/**
|
102
102
|
* @description This method shall be called when the user wants to retrieve information about the buyer and the passengers.
|
@@ -161,7 +161,7 @@ var ServiceBooking = /** @class */ (function (_super) {
|
|
161
161
|
var url;
|
162
162
|
var _this = this;
|
163
163
|
return __generator(this, function (_a) {
|
164
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
164
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts?").concat(new URLSearchParams({ cartId: cartId.toString() }));
|
165
165
|
return [2 /*return*/, this.callGetApi(url).then(function (response) {
|
166
166
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
167
167
|
_this.resetBooking();
|
@@ -240,7 +240,7 @@ var ServiceBooking = /** @class */ (function (_super) {
|
|
240
240
|
* You should call this method only if {@link Service.isDateOptional} or {@link Service.isDateRequired} is true for the selected tour.
|
241
241
|
* @param {number} serviceId The id of the selected tour (can be retrieved in the object {@link Service} returned by {@link getTours})
|
242
242
|
* @param {string} date The date on which to get the tours, in ISO string format
|
243
|
-
* @returns {
|
243
|
+
* @returns {ServiceTripsResponse} The returned information about the tour (tripId and hour)
|
244
244
|
*/
|
245
245
|
ServiceBooking.prototype.getServiceTrips = function (serviceId, date) {
|
246
246
|
return __awaiter(this, void 0, void 0, function () {
|
@@ -249,7 +249,7 @@ var ServiceBooking = /** @class */ (function (_super) {
|
|
249
249
|
searchParams = new URLSearchParams({ date: date });
|
250
250
|
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/services/").concat(serviceId, "/trips?").concat(searchParams);
|
251
251
|
return [2 /*return*/, this.callGetApi(url).then(function (response) {
|
252
|
-
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response
|
252
|
+
return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response) ? response : response;
|
253
253
|
})];
|
254
254
|
});
|
255
255
|
});
|
@@ -259,7 +259,7 @@ var ServiceBooking = /** @class */ (function (_super) {
|
|
259
259
|
var url;
|
260
260
|
var _this = this;
|
261
261
|
return __generator(this, function (_a) {
|
262
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/services/
|
262
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/services/carts");
|
263
263
|
return [2 /*return*/, this.callPostApi(url, serviceCart).then(function (response) {
|
264
264
|
// Check for errors
|
265
265
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -300,7 +300,7 @@ var ServiceBooking = /** @class */ (function (_super) {
|
|
300
300
|
if (!buyerPassengersDetails || !buyerPassengersDetails[0]) {
|
301
301
|
throw Error("The status of the cart does not allow to call this API");
|
302
302
|
}
|
303
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
303
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cart.id, "/details?");
|
304
304
|
return [2 /*return*/, this.callGetApi(url).then(function (response) {
|
305
305
|
// Check for errors
|
306
306
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -373,7 +373,7 @@ var ServiceBooking = /** @class */ (function (_super) {
|
|
373
373
|
buyer: buyerDetails,
|
374
374
|
passengers: [],
|
375
375
|
};
|
376
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
376
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cart.id, "/details");
|
377
377
|
return [2 /*return*/, this.callPostApi(url, request).then(function (response) {
|
378
378
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
379
379
|
return response;
|
@@ -429,7 +429,7 @@ var ServiceBooking = /** @class */ (function (_super) {
|
|
429
429
|
}
|
430
430
|
_c.label = 5;
|
431
431
|
case 5:
|
432
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
432
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cartId, "/payment/reduction");
|
433
433
|
return [2 /*return*/, this.callPostApi(url, request).then(function (response) {
|
434
434
|
var _a, _b;
|
435
435
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -466,7 +466,7 @@ var ServiceBooking = /** @class */ (function (_super) {
|
|
466
466
|
throw Error("The status of the cart does not allow to call this API");
|
467
467
|
}
|
468
468
|
queryParams = new URLSearchParams({ tripId: tripId.toString() });
|
469
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
469
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cartId, "/payment/reduction?").concat(queryParams);
|
470
470
|
return [2 /*return*/, this.callDeleteApi(url).then(function (response) {
|
471
471
|
var _a, _b, _c;
|
472
472
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -523,11 +523,11 @@ var ServiceBooking = /** @class */ (function (_super) {
|
|
523
523
|
// Check again if the discounts step is accessible
|
524
524
|
issueStep = this.bookingStepsToStatus.get(booking_1.Booking.BookingSteps.ISSUE);
|
525
525
|
if (!issueStep || !issueStep[0]) {
|
526
|
-
throw Error("The status of the cart does not allow to call the API: booking/
|
526
|
+
throw Error("The status of the cart does not allow to call the API: booking/carts/".concat(this.cartId, "/payment/wallet"));
|
527
527
|
}
|
528
528
|
_c.label = 5;
|
529
529
|
case 5:
|
530
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
530
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cartId, "/payment/wallet");
|
531
531
|
return [2 /*return*/, this.callPostApi(url, {}).then(function (response) {
|
532
532
|
var _a, _b;
|
533
533
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -558,7 +558,7 @@ var ServiceBooking = /** @class */ (function (_super) {
|
|
558
558
|
if (!this.cartId || this.cartId === 0) {
|
559
559
|
throw Error("Cart is not initialized yet");
|
560
560
|
}
|
561
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
561
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cartId, "/payment/wallet");
|
562
562
|
return [2 /*return*/, this.callDeleteApi(url).then(function (response) {
|
563
563
|
var _a, _b, _c;
|
564
564
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -618,7 +618,7 @@ var ServiceBooking = /** @class */ (function (_super) {
|
|
618
618
|
}
|
619
619
|
_c.label = 5;
|
620
620
|
case 5:
|
621
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
621
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cartId, "/payment/voucher");
|
622
622
|
return [2 /*return*/, this.callPostApi(url, { voucherCode: voucherCode }).then(function (response) {
|
623
623
|
var _a, _b;
|
624
624
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -161,7 +161,7 @@ var SubscriptionBooking = /** @class */ (function (_super) {
|
|
161
161
|
var url;
|
162
162
|
var _this = this;
|
163
163
|
return __generator(this, function (_a) {
|
164
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
164
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts?").concat(new URLSearchParams({ cartId: cartId.toString() }));
|
165
165
|
return [2 /*return*/, this.callGetApi(url).then(function (response) {
|
166
166
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
167
167
|
_this.resetBooking();
|
@@ -314,7 +314,7 @@ var SubscriptionBooking = /** @class */ (function (_super) {
|
|
314
314
|
var url;
|
315
315
|
var _this = this;
|
316
316
|
return __generator(this, function (_a) {
|
317
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/subscriptions/
|
317
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/subscriptions/carts");
|
318
318
|
return [2 /*return*/, this.callPostApi(url, request).then(function (response) {
|
319
319
|
// Check for errors
|
320
320
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -353,7 +353,7 @@ var SubscriptionBooking = /** @class */ (function (_super) {
|
|
353
353
|
if (!buyerPassengersDetails || !buyerPassengersDetails[0]) {
|
354
354
|
throw Error("The status of the cart does not allow to call this API");
|
355
355
|
}
|
356
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
356
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cart.id, "/details?");
|
357
357
|
return [2 /*return*/, this.callGetApi(url).then(function (response) {
|
358
358
|
// Check for errors
|
359
359
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -449,7 +449,7 @@ var SubscriptionBooking = /** @class */ (function (_super) {
|
|
449
449
|
});
|
450
450
|
request.passengers[passengerIndex].tripsToTariffs = tripsToTariffsToJson;
|
451
451
|
});
|
452
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
452
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cart.id, "/details");
|
453
453
|
return [2 /*return*/, this.callPostApi(url, request).then(function (response) {
|
454
454
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
455
455
|
return response;
|
@@ -504,7 +504,7 @@ var SubscriptionBooking = /** @class */ (function (_super) {
|
|
504
504
|
}
|
505
505
|
_c.label = 5;
|
506
506
|
case 5:
|
507
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
507
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cartId, "/payment/reduction");
|
508
508
|
return [2 /*return*/, this.callPostApi(url, request).then(function (response) {
|
509
509
|
var _a, _b;
|
510
510
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -541,7 +541,7 @@ var SubscriptionBooking = /** @class */ (function (_super) {
|
|
541
541
|
throw Error("The status of the cart does not allow to call this API");
|
542
542
|
}
|
543
543
|
queryParams = new URLSearchParams({ tripId: tripId.toString() });
|
544
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
544
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cartId, "/payment/reduction?").concat(queryParams);
|
545
545
|
return [2 /*return*/, this.callDeleteApi(url).then(function (response) {
|
546
546
|
var _a, _b, _c;
|
547
547
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -598,11 +598,11 @@ var SubscriptionBooking = /** @class */ (function (_super) {
|
|
598
598
|
// Check again if the discounts step is accessible
|
599
599
|
issueStep = this.bookingStepsToStatus.get(booking_1.Booking.BookingSteps.ISSUE);
|
600
600
|
if (!issueStep || !issueStep[0]) {
|
601
|
-
throw Error("The status of the cart does not allow to call the API: booking/
|
601
|
+
throw Error("The status of the cart does not allow to call the API: booking/carts/".concat(this.cartId, "/payment/wallet"));
|
602
602
|
}
|
603
603
|
_c.label = 5;
|
604
604
|
case 5:
|
605
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
605
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cartId, "/payment/wallet");
|
606
606
|
return [2 /*return*/, this.callPostApi(url, {}).then(function (response) {
|
607
607
|
var _a, _b;
|
608
608
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -633,7 +633,7 @@ var SubscriptionBooking = /** @class */ (function (_super) {
|
|
633
633
|
if (!this.cartId || this.cartId === 0) {
|
634
634
|
throw Error("Cart is not initialized yet");
|
635
635
|
}
|
636
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
636
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cartId, "/payment/wallet");
|
637
637
|
return [2 /*return*/, this.callDeleteApi(url).then(function (response) {
|
638
638
|
var _a, _b, _c;
|
639
639
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -693,7 +693,7 @@ var SubscriptionBooking = /** @class */ (function (_super) {
|
|
693
693
|
}
|
694
694
|
_c.label = 5;
|
695
695
|
case 5:
|
696
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
696
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cartId, "/payment/voucher");
|
697
697
|
return [2 /*return*/, this.callPostApi(url, { voucherCode: voucherCode }).then(function (response) {
|
698
698
|
var _a, _b;
|
699
699
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -161,7 +161,7 @@ var TplBooking = /** @class */ (function (_super) {
|
|
161
161
|
var url;
|
162
162
|
var _this = this;
|
163
163
|
return __generator(this, function (_a) {
|
164
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
164
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts?").concat(new URLSearchParams({ cartId: cartId.toString() }));
|
165
165
|
return [2 /*return*/, this.callGetApi(url).then(function (response) {
|
166
166
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
167
167
|
_this.resetBooking();
|
@@ -287,7 +287,7 @@ var TplBooking = /** @class */ (function (_super) {
|
|
287
287
|
var url, processedTariffIdToQuantity, request;
|
288
288
|
var _this = this;
|
289
289
|
return __generator(this, function (_a) {
|
290
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/tpl/
|
290
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/tpl/carts");
|
291
291
|
processedTariffIdToQuantity = {};
|
292
292
|
tariffIdToQuantity.forEach(function (value, key) {
|
293
293
|
processedTariffIdToQuantity[key] = value;
|
@@ -333,7 +333,7 @@ var TplBooking = /** @class */ (function (_super) {
|
|
333
333
|
if (!buyerPassengersDetails || !buyerPassengersDetails[0]) {
|
334
334
|
throw Error("The status of the cart does not allow to call this API");
|
335
335
|
}
|
336
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
336
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cart.id, "/details?");
|
337
337
|
return [2 /*return*/, this.callGetApi(url).then(function (response) {
|
338
338
|
// Check for errors
|
339
339
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -406,7 +406,7 @@ var TplBooking = /** @class */ (function (_super) {
|
|
406
406
|
buyer: buyerDetails,
|
407
407
|
passengers: [],
|
408
408
|
};
|
409
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
409
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cart.id, "/details");
|
410
410
|
return [2 /*return*/, this.callPostApi(url, request).then(function (response) {
|
411
411
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
412
412
|
return response;
|
@@ -462,7 +462,7 @@ var TplBooking = /** @class */ (function (_super) {
|
|
462
462
|
}
|
463
463
|
_c.label = 5;
|
464
464
|
case 5:
|
465
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
465
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cartId, "/payment/reduction");
|
466
466
|
return [2 /*return*/, this.callPostApi(url, request).then(function (response) {
|
467
467
|
var _a, _b;
|
468
468
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -499,7 +499,7 @@ var TplBooking = /** @class */ (function (_super) {
|
|
499
499
|
throw Error("The status of the cart does not allow to call this API");
|
500
500
|
}
|
501
501
|
queryParams = new URLSearchParams({ tripId: tripId.toString() });
|
502
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
502
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cartId, "/payment/reduction?").concat(queryParams);
|
503
503
|
return [2 /*return*/, this.callDeleteApi(url).then(function (response) {
|
504
504
|
var _a, _b, _c;
|
505
505
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -556,11 +556,11 @@ var TplBooking = /** @class */ (function (_super) {
|
|
556
556
|
// Check again if the discounts step is accessible
|
557
557
|
issueStep = this.bookingStepsToStatus.get(booking_1.Booking.BookingSteps.ISSUE);
|
558
558
|
if (!issueStep || !issueStep[0]) {
|
559
|
-
throw Error("The status of the cart does not allow to call the API: booking/
|
559
|
+
throw Error("The status of the cart does not allow to call the API: booking/carts/".concat(this.cartId, "/payment/wallet"));
|
560
560
|
}
|
561
561
|
_c.label = 5;
|
562
562
|
case 5:
|
563
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
563
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cartId, "/payment/wallet");
|
564
564
|
return [2 /*return*/, this.callPostApi(url, {}).then(function (response) {
|
565
565
|
var _a, _b;
|
566
566
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -591,7 +591,7 @@ var TplBooking = /** @class */ (function (_super) {
|
|
591
591
|
if (!this.cartId || this.cartId === 0) {
|
592
592
|
throw Error("Cart is not initialized yet");
|
593
593
|
}
|
594
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
594
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cartId, "/payment/wallet");
|
595
595
|
return [2 /*return*/, this.callDeleteApi(url).then(function (response) {
|
596
596
|
var _a, _b, _c;
|
597
597
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -651,7 +651,7 @@ var TplBooking = /** @class */ (function (_super) {
|
|
651
651
|
}
|
652
652
|
_c.label = 5;
|
653
653
|
case 5:
|
654
|
-
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/
|
654
|
+
url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/").concat(this.cartId, "/payment/voucher");
|
655
655
|
return [2 /*return*/, this.callPostApi(url, { voucherCode: voucherCode }).then(function (response) {
|
656
656
|
var _a, _b;
|
657
657
|
if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
|
@@ -31,3 +31,13 @@ export type ServiceTrip = {
|
|
31
31
|
date: Date;
|
32
32
|
name: string;
|
33
33
|
};
|
34
|
+
/**
|
35
|
+
* @description Represents a response from the service trips endpoint
|
36
|
+
* @param {boolean} areThereTrips - Indicates whether there are trips available for the service.
|
37
|
+
* @param {ServiceTrip[]} trips - An array of {@link ServiceTrip} objects representing the available trips. This can be empty
|
38
|
+
* even if `areThereTrips` is true, as the user might be not allowed to select a specific trip.
|
39
|
+
*/
|
40
|
+
export type ServiceTripsResponse = {
|
41
|
+
areThereTrips: boolean;
|
42
|
+
trips: ServiceTrip[];
|
43
|
+
};
|
@@ -9,7 +9,7 @@ import { ServiceTrip } from "./Service";
|
|
9
9
|
* @property {Object} service - Information about the selected service.
|
10
10
|
* @property {number} service.serviceId - The unique identifier for the service.
|
11
11
|
* @property {TariffsMatrix} service.tariffsMatrix - The tariff matrix for pricing the service.
|
12
|
-
* @property {
|
12
|
+
* @property {string|undefined} [service.date] - The date for the service in ISO string format (optional).
|
13
13
|
* @property {number|undefined} [service.tripId] - The unique identifier for the trip (optional).
|
14
14
|
*/
|
15
15
|
export type CreateServiceCartRequest = {
|
@@ -17,7 +17,7 @@ export type CreateServiceCartRequest = {
|
|
17
17
|
service: {
|
18
18
|
serviceId: number;
|
19
19
|
tariffsMatrix: TariffsMatrix;
|
20
|
-
date?:
|
20
|
+
date?: string;
|
21
21
|
tripId?: number;
|
22
22
|
};
|
23
23
|
};
|
@@ -0,0 +1,14 @@
|
|
1
|
+
/**
|
2
|
+
* This method return the ISO string of the date without GMT. An ISO string looks like this: YYYY-MM-DDThh:mm:ss.mmmZ
|
3
|
+
* @param {Date | string} date the date to convert
|
4
|
+
* @param {boolean} [removeTimezone=true] if true, the timezone will be removed from the ISO string, meaning
|
5
|
+
* that the string will look like this: YYYY-MM-DDThh:mm:ss.mmm
|
6
|
+
* @returns {string} the ISO string
|
7
|
+
*/
|
8
|
+
export declare const getISOStringWithoutGMT: (date: Date | string | null | undefined, removeTimezone?: boolean) => string | null;
|
9
|
+
/**
|
10
|
+
* This method check where a variable is null or undefined
|
11
|
+
* @param value The value to check
|
12
|
+
* @returns True if the value is null or undefined, false otherwise
|
13
|
+
*/
|
14
|
+
export declare const isNullOrUndefined: (value: any) => boolean;
|
@@ -0,0 +1,26 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.isNullOrUndefined = exports.getISOStringWithoutGMT = void 0;
|
4
|
+
/**
|
5
|
+
* This method return the ISO string of the date without GMT. An ISO string looks like this: YYYY-MM-DDThh:mm:ss.mmmZ
|
6
|
+
* @param {Date | string} date the date to convert
|
7
|
+
* @param {boolean} [removeTimezone=true] if true, the timezone will be removed from the ISO string, meaning
|
8
|
+
* that the string will look like this: YYYY-MM-DDThh:mm:ss.mmm
|
9
|
+
* @returns {string} the ISO string
|
10
|
+
*/
|
11
|
+
var getISOStringWithoutGMT = function (date, removeTimezone) {
|
12
|
+
if (removeTimezone === void 0) { removeTimezone = true; }
|
13
|
+
if (!date)
|
14
|
+
return null;
|
15
|
+
var newDate = new Date(date);
|
16
|
+
var isoString = new Date(newDate.valueOf() - newDate.getTimezoneOffset() * 60000).toISOString();
|
17
|
+
return removeTimezone ? isoString.slice(0, -1) : isoString;
|
18
|
+
};
|
19
|
+
exports.getISOStringWithoutGMT = getISOStringWithoutGMT;
|
20
|
+
/**
|
21
|
+
* This method check where a variable is null or undefined
|
22
|
+
* @param value The value to check
|
23
|
+
* @returns True if the value is null or undefined, false otherwise
|
24
|
+
*/
|
25
|
+
var isNullOrUndefined = function (value) { return value === null || value === undefined; };
|
26
|
+
exports.isNullOrUndefined = isNullOrUndefined;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "mts-booking-library",
|
3
|
-
"version": "1.3.
|
3
|
+
"version": "1.3.2",
|
4
4
|
"description": "Library for using MyTicketSolution Booking API",
|
5
5
|
"main": "lib/index.js",
|
6
6
|
"types": "lib/index.d.ts",
|
@@ -17,7 +17,7 @@
|
|
17
17
|
"@types/jest": "^29.5.12",
|
18
18
|
"jest": "^29.7.0",
|
19
19
|
"ts-jest": "^29.1.2",
|
20
|
-
"typescript": "^5.4.
|
20
|
+
"typescript": "^5.4.3"
|
21
21
|
},
|
22
22
|
"files": [
|
23
23
|
"lib/**/*"
|
@@ -30,6 +30,7 @@
|
|
30
30
|
"dependencies": {
|
31
31
|
"@react-native-async-storage/async-storage": "^1.23.1",
|
32
32
|
"axios": "^1.6.8",
|
33
|
+
"dotenv": "^16.4.5",
|
33
34
|
"node-localstorage": "^3.0.5",
|
34
35
|
"zustand": "^4.5.2"
|
35
36
|
}
|