mts-booking-library 1.3.0 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +4 -4
- package/lib/booking/serviceBooking.js +14 -14
- 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 {
|
@@ -93,10 +93,10 @@ export declare class ServiceBooking extends Booking {
|
|
93
93
|
* and/or a specific hour for the tour.
|
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
|
-
* @param {
|
97
|
-
* @returns {
|
96
|
+
* @param {string} date The date on which to get the tours, in ISO string format
|
97
|
+
* @returns {ServiceTripsResponse} The returned information about the tour (tripId and hour)
|
98
98
|
*/
|
99
|
-
getServiceTrips(serviceId: number, date:
|
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();
|
@@ -239,17 +239,17 @@ var ServiceBooking = /** @class */ (function (_super) {
|
|
239
239
|
* and/or a specific hour for the tour.
|
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
|
-
* @param {
|
243
|
-
* @returns {
|
242
|
+
* @param {string} date The date on which to get the tours, in ISO string format
|
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 () {
|
247
247
|
var searchParams, url;
|
248
248
|
return __generator(this, function (_a) {
|
249
|
-
searchParams = new URLSearchParams({ date: date
|
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
|
}
|